Mysql 选择未由任何员工订购的产品

Mysql 选择未由任何员工订购的产品,mysql,Mysql,我想获取员工未订购的产品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

我想获取
员工未订购的
产品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

使用
left join
并检查
NULL

select distinct e.EmployeeID ,p.ProductID 
from Products p 
   left join OrderDetails od on od.ProductID=p.ProductID
   left join Orders o on o.OrderID=od.OrderID
   left join Employee e on e.EmployeeID=o.EmployeeID 
where e.EmployeeName IS NULL
order by e.EmployeeID
如果
employee
表中没有关联的员工记录,则返回订单详细信息

编辑:

试试这个:

 select e1.EmployeeID,p1.ProductID
 from Employee e1, p1.ProductID
 where e1.EmployeeID NOT IN
 ( select distinct e.EmployeeID 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)
 and p1.ProductID NOT IN 
 ( select distinct 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)
如果您提供一些示例数据和表结构,我们可以进行更好的查询。

试试看-

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 
left join Employee e on e.EmployeeID=o.EmployeeID 
where e.EmployeeID is null
order by o.EmployeeID;

按e.EmployeeID订购说明订购产品但未订购产品的订单员工请详细说明:您需要第一个订购产品的员工,然后是那些未订购的员工?员工列表和他未订购的产品此问题不清楚。请澄清它,包括在下面的评论中提出的观点,或删除它。它返回nothing@srimouni:请检查表
订单
订单详情
员工
,如果至少有一名员工没有订购任何产品。是的,有一些员工没有订购带有产品的特定产品id@srimouni:您能在问题中提供一些示例数据吗?我只想显示19,因为员工1没有订购id为9的产品。如果对您不可行,请显示示例数据以及您需要或创建SqlFIDLE的输出。从逻辑上讲,这应该为您提供所需的结果。1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 10 1 11 12它应该显示1 9这是一个谜题吗?:)