列出一个表中不在另一个表中的所有项目

列出一个表中不在另一个表中的所有项目

问题描述:

我想要比较一个数据库中的两个表。一个是名为库存的库存清单,另一个是订购的所称物品清单。我想列出从未订购的库存表中的所有库存(所以我基​​本上想检查库存中的任何物品,但不包括物品中的物品)。我有一些困惑,因为股票包含两个密钥,即stock_num和manu_code(制造商代码)。以下是我目前为止的内容,我希望这些内容可以靠近或至少朝着正确的方向前进。它目前返回一个没有错误的空列表。列出一个表中不在另一个表中的所有项目

select stock.stock_num, stock.manu_code, stock.description 
from stock 
     join items 
       on stock.stock_num = items.stock_num 
       and stock.manu_code = items.manu_code 
where items.stock_num and items.manu_code is null 

使用LEFT OUTER JOIN

select stock.stock_num, stock.manu_code, stock.description 
from stock 
left outer join items 
    on stock.stock_num = items.stock_num 
    and stock.manu_code = items.manu_code 
where items.stock_num is null and items.manu_code is null 

试试这个

select stock_num ,manu_code from stock 
except 
select stock_num,manu_code from items 

,你可以得到这是不是在项目表

参见: Except