2017-02-09 3 views
0

이 테이블에 http://www.dofactory.com/sql/sandbox이 있고 지난 3 개월 동안 주문하지 않은 제품을 찾아야합니다. 지금까지이 제품을 구입했는데 주문되지 않은 제품을 실제로 표시하는 방법을 모르겠습니다. 여기에 도움이 필요해! 고맙습니다!결산일로부터 측정 한 지난 3 개월 동안 주문하지 않은 제품이 있습니까?

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 
관련 문제