2017-02-09 38 views
0

我得到了这张表:http://www.dofactory.com/sql/sandbox,我需要找到过去三个月没有订购的产品。 我到目前为止,我不知道我如何实际显示那些没有订购的产品。在这里需要一些帮助!谢谢!从财政年度末开始,过去三个月是否有未订购的产品?

SELECT ProductName 
FROM Product 
INNER JOIN OrderItem ON Product.Id=OrderItem.ProductId 
INNER JOIN [Order] ON [Order].Id=OrderItem.OrderId 
WHERE OrderDate BETWEEN '2014/01/30' AND '2014/04/30' 
GROUP BY ProductName 

回答

1

这样的查询建议not exists。然而,left join也可以工作:

SELECT p.ProductName 
FROM Product p LEFT JOIN 
    OrderItem oi 
    ON p.Id = oi.ProductId LEFT JOIN 
    [Order] o 
    ON o.Id = oi.OrderId AND 
     o.OrderDate BETWEEN '2014-01-30' AND '2014-04-30' 
WHERE o.Id IS NULL