我想获取ProductId
尚未订购的Employee
列表。
我有这个查询,它给了我所有已订购的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)
我不确定您的问题,但如果您想要没有员工关联的产品,可以试试这个:
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)。