我有两个桌子。我会把插座插进去作为参考。
插座
ID Outlet_Name
-----------------
1 Big Bar
2 Bigger Bar
Master_Stock
ID Stock_Name
--------------------
1 Heineken
2 Speights ALe
3 Lion Red
4 Chavey Blue
5 Tui Beer
Outlet_Stock
ID Stock_ID Outlet_ID
--------------------------
1 1 1
2 2 1
3 3 1
如何选择Master_Stock
中的所有内容,将其与Outlet_Stock
进行比较,然后根据Outlet_ID
将其删除?
例如-查询将离开 Master_Stock
ID
4
5
因为出口1已经有1、2和3。
它在Microsoft SQL Server管理中运行。
SELECT *
FROM Stock
WHERE NOT EXISTS (SELECT *
FROM outlet_stock
WHERE stock.id = outlet_stock.stock_id
AND outlet_stock.outlet_id <> '1')
我希望输出中仅包含某个特定商店的主库存中没有的商品
答案 0 :(得分:1)
解决方案的很大一部分是从master_stock
中选择,而不是从stock
中选择。然后您需要正确获得子查询:
SELECT ms.*
FROM master_stock ms
WHERE NOT EXISTS (SELECT 1
FROM outlet_stock os
WHERE ms.id = os.stock_id AND
os.outlet_id = 1
);