列出一个表中不在另一个表中的所有项目
问题描述:
我想要比较一个数据库中的两个表。一个是名为库存的库存清单,另一个是订购的所称物品清单。我想列出从未订购的库存表中的所有库存(所以我基本上想检查库存中的任何物品,但不包括物品中的物品)。我有一些困惑,因为股票包含两个密钥,即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