2

SQL 查询

TABLE - CUSTOMER
1001,1
1001,2
1001,3
1002,1
1002,3
1003,3

TABLE - PRODUCT
1
2
3

结果应该是 1001 因为它得到的所有值都与订单表匹配。
PRODUCT 表可能会随着时间而改变。
我想知道谁从我这里购买了所有产品。
谢谢!

4

1 回答 1

8

假设这CustomerTB是一个有两列的表:CustomerIDProductID。您需要对其进行分组CustomerID并计算他购买的独特产品。(如果客户每个产品只能购买一个,则不需要 DISTINCTproduct )并且应该等于表中列表中的产品总数。

SELECT customerID
FROM   CustomerTB
GROUP BY CustomerID
HAVING COUNT(DISTINCT productID) = (SELECT COUNT(*) FROM ProductTB)
于 2012-11-11T15:05:11.573 回答