2015-08-17 59 views
-1

我想要得到ProductId的列表,這個列表還沒有被Employee排序。選擇不加入的ID

我有這個疑問,給了我已下令所有ProductId,但我想它的反向:

SELECT distinct e.EmployeeID ,p.ProductID 
FROM Products p JOIN OrderDetails od 
    ON od.ProductID=p.ProductID JOIN Orders o 
    ON o.OrderID=od.OrderID JOIN Employee e 
    ON e.EmployeeID=o.EmployeeID 
order by e.EmployeeID 
+0

你能否提供你的查詢,這是不給預期的輸出? –

+0

顯示一些示例數據和您期望的輸出。 – DarkKnight

+0

上od.ProductID = p.ProductID 選擇不同e.EmployeeID,p.ProductID從商品P 加入訂單明細OD加入級O上o.OrderID = od.OrderID 加入僱員E在e.EmployeeID = o.EmployeeID順序通過e.EmployeeID –

回答

0

我不知道理解你的問題,但如果你想產品無相關員工你可以試試這個:

SELECT distinct e.EmployeeID ,p.ProductID 
FROM Products p 
INNER JOIN OrderDetails od 
    ON od.ProductID=p.ProductID 
INNER JOIN Orders o 
    ON o.OrderID=od.OrderID 
LEFT JOIN Employee e 
    ON e.EmployeeID=o.EmployeeID 
WHERE e.EmployeeID is NULL 
order by e.EmployeeID 

的想法是選擇所有訂單(INNER JOIN)也誰沒有員工相關的訂單(LEFT JOIN)。最後你過濾那些沒有關聯的(IS NULL)。

+0

解釋WHERE e.EmployeeID爲NULL是唯一要返回的員工ID是否爲空 – AD7six