2015-09-28 49 views
-3

我有一個客戶ID表,的ProductID表和訂單表,列出每個人(也就是隻有一個的ProductID每條記錄​​),客戶訂購(數量是不相關)。 有沒有辦法使用JOIN來列出過去已經訂購了每件產品的客戶? 換句話說已經在Orders表中相關的訂單,每的productID所有的customerID小號...針對訂購每個產品的客戶的T-SQL查詢 - 如何?

我可以用一些中間/臨時表做,但我很好奇,如果有使用JOIN方式爲了那個原因。

謝謝。

克里斯

+0

那你試試這麼遠嗎? –

回答

0
select custID 
(
    select distinct custID, prodID 
    from order 
) orderD 
group by custID 
having count(*) = (select count(*) from products) 
+0

這看起來可以訣竅,因爲有一個原因,當有一個更簡單的方法思考JOIN方塊外時,注意力加在JOIN上。謝謝! –

+0

如果這是答案,您可以點擊檢查 – Paparazzi

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>)) 
相關問題