SQL 查询
TABLE - CUSTOMER
1001,1
1001,2
1001,3
1002,1
1002,3
1003,3
TABLE - PRODUCT
1
2
3
结果应该是 1001,因为它得到的所有值都与订单表匹配。
PRODUCT 表可能会随时间变化。
我想知道谁从我这里买了所有的产品。
谢谢!
最佳答案
假设 CustomerTB
是一个包含两列的表:CustomerID
和 ProductID
。您需要按 CustomerID
对其进行分组,并计算他购买的不同产品。 (如果客户每种产品只能购买一件,则不需要 DISTINCT)并且应该等于 product
表列表中的产品总数。
SELECT customerID
FROM CustomerTB
GROUP BY CustomerID
HAVING COUNT(DISTINCT productID) = (SELECT COUNT(*) FROM ProductTB)
关于显示包含列表中所有值的分组行的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13332338/