计算到一个表到另一个表的关系量

时间:2018-09-11 18:08:03

标签: sql sqlite

为此很难创建一个好标题。

给出表products

productID
---------
892
583
388

purchases

customerID   productID
----------   ---------
56           892
97           388
56           583
56           388
97           583

我该如何获取所有购买了所有产品的顾客的桌子?

2 个答案:

答案 0 :(得分:2)

您可以使用group byhaving

select customerId
from purchases
group by customerId
having count(distinct productID) = (select count(*) from products);

答案 1 :(得分:0)

GROUP BY子句与HAVING一起使用:

SELECT pr.customerID 
FROM products p INNER JOIN
     purchases pr
     on pr.productID = p.productID
GROUP BY pr.customerID 
HAVING COUNT(DISTINCT pr.productID) = (SELECT COUNT(*) FROM products);