我有一个 CustomerID 表,一个 ProductID 表和一个Orders表,其中列出了每个INDIVIDUAL(每个记录只有一个 ProductID )客户订购(数量不相关)。 有没有办法使用JOIN 列出过去订购了每件产品的客户? 换句话说,所有 customerID 在每个 productID 的订单表中都有相关订单...
我可以使用一些中间/临时表来完成它但我很好奇是否有一种方法可以使用JOIN。
谢谢。
克里斯
答案 0 :(得分:0)
您可以使用以下内容:
SELECT ...
FROM User
WHERE
(SELECT DISTINCT (ProductId) FROM <order items of User>)
= (SELECT count(*) FROM product)
更直观(可能):
SELECT
FROM USER
WHERE NOT EXISTS (
SELECT *
from product
WHERE NOT EXISTS (
SELECT * FROM <order items of User and product>))
答案 1 :(得分:0)
select custID
(
select distinct custID, prodID
from order
) orderD
group by custID
having count(*) = ( select count(*) from products )