【发布时间】:2016-03-29 19:07:58
【问题描述】:
我有两张桌子。一个由客户组成,另一个由他们购买的产品组成:
表客户
CustID, Name
1, Tom
2, Lisa
3, Fred
餐桌产品
CustID, Item
1, Toaster
1, Breadbox
2, Toaster
3, Toaster
我想吸引所有购买了烤面包机的顾客,除非他们也购买了面包盒。
所以我尝试了以下方法:
SELECT * FROM Customer
JOIN Product
ON Customer.CustID=Product.CustID
WHERE Product in
(SELECT
Item
FROM Product
WHERE (Item = 'Toaster' AND Item != 'Breadbox'));
还有:
SELECT * FROM Customer
INNER Join Product
ON Customer.CustID=PRODUCT.CustID
WHERE Product.Item = 'Toaster'
AND Product.Item NOT IN ('Breadbox');
但两者都给出了相同的结果,其中包括汤姆,他已经拥有一个面包盒。
我如何确保只有拥有烤面包机但不拥有面包盒的客户才会被列出?
【问题讨论】: