Sql server 针对订购每种产品的客户的T-SQL查询-如何?
我有一个CustomerID表、一个ProductID表和一个Orders表,其中列出了每个记录中只有一个ProductID的个人,这些记录与客户订购数量无关。 有没有一种方法可以使用JOIN列出过去订购过每种产品的客户? 换句话说,对于每个productID,在orders表中具有关联订单的所有CustomerID 我可以用一些中间/临时表来完成,但我很好奇是否有一种方法可以使用JOIN 多谢各位Sql server 针对订购每种产品的客户的T-SQL查询-如何?,sql-server,tsql,join,Sql Server,Tsql,Join,我有一个CustomerID表、一个ProductID表和一个Orders表,其中列出了每个记录中只有一个ProductID的个人,这些记录与客户订购数量无关。 有没有一种方法可以使用JOIN列出过去订购过每种产品的客户? 换句话说,对于每个productID,在orders表中具有关联订单的所有CustomerID 我可以用一些中间/临时表来完成,但我很好奇是否有一种方法可以使用JOIN 多谢各位 Cris您可以使用以下内容: SELECT ... FROM User WHERE (SE
Cris您可以使用以下内容:
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>))
到目前为止,你尝试了什么?这看起来起到了作用,出于某种原因,当有一种更简单的方法在连接方之外思考时,我专注于连接。非常感谢。如果这是答案,您可以单击“检查”
select custID
(
select distinct custID, prodID
from order
) orderD
group by custID
having count(*) = ( select count(*) from products )