我有一個客戶ID表,的ProductID表和訂單表,列出每個人(也就是隻有一個的ProductID每條記錄),客戶訂購(數量是不相關)。 有沒有辦法使用JOIN來列出過去已經訂購了每件產品的客戶? 換句話說已經在Orders表中相關的訂單,每的productID所有的customerID小號...針對訂購每個產品的客戶的T-SQL查詢 - 如何?
我可以用一些中間/臨時表做,但我很好奇,如果有使用JOIN方式爲了那個原因。
謝謝。
克里斯
我有一個客戶ID表,的ProductID表和訂單表,列出每個人(也就是隻有一個的ProductID每條記錄),客戶訂購(數量是不相關)。 有沒有辦法使用JOIN來列出過去已經訂購了每件產品的客戶? 換句話說已經在Orders表中相關的訂單,每的productID所有的customerID小號...針對訂購每個產品的客戶的T-SQL查詢 - 如何?
我可以用一些中間/臨時表做,但我很好奇,如果有使用JOIN方式爲了那個原因。
謝謝。
克里斯
select custID
(
select distinct custID, prodID
from order
) orderD
group by custID
having count(*) = (select count(*) from products)
這看起來可以訣竅,因爲有一個原因,當有一個更簡單的方法思考JOIN方塊外時,注意力加在JOIN上。謝謝! –
如果這是答案,您可以點擊檢查 – Paparazzi
您可以使用這樣的事情:
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>))
那你試試這麼遠嗎? –