我有三个表:产品,库存和成分
Product Table
ID[PK] Name Type
1 OrdinaryBurger Burger
2 CheeseBurger Burger
Inventory table
ID[PK] Item_name Stocks
100 Buns 5
101 Patties 5
103 Cheese 0
Ingredients table
ID[PK] ProductID[FK] InventoryID[FK] Quantity
1001 1 100 1
1002 1 101 1
1003 2 100 1
1004 2 101 1
1005 2 103 1
我想编写一个查询,如果连接的库存库存为0,则可以过滤所有不显示的产品,例如,这将不会显示Cheeseburger,因为奶酪库存为0.谢谢
答案 0 :(得分:1)
以下内容仅返回至少含有足够成分的产品。
SELECT * FROM Products WHERE ProductID NOT IN (
SELECT i.ProductID
FROM Ingredients i
JOIN Inventory iv ON i.InventoryID = iv.InventoryId
GROUP BY i.ProductID, i.InventoryId
HAVING SUM(iv.Stocks) < SUM(i.Quantity)
)