我正在尝试选择过去2个月内完全没有销售的所有商品。
我尝试使用此查询,但结果并不如预期:
SELECT SalesDescription FROM Items I
LEFT JOIN Orders_Items OI
ON OI.ItemID=I.ItemID
LEFT JOIN Orders O
ON O.OrderID=OI.OrderID
WHERE OrderTime NOT BETWEEN date_sub(curdate(), interval 2 month)
AND date_sub(curdate(), interval 1 day)
Group By I.ItemID
基本上,我想从项目表中获取所有记录(按项目ID分组),但前提是它们在过去两个月内没有被订购。
当我进行上述连接时,生成的表格如下:
Name OrderID OrderDate
Widget A 1 Last Year
Widget B 2 Last Week
Widget C 3 Last Year
Widget C 4 Last Week
我的结果应该只返回小部件A,因为它在最近两个月内没有被订购。它超过一年前被订购的事实并不重要。
小部件C不应出现,因为在过去的两个月中曾下单包含小部件C的订单。
问题是,我想要的记录将没有与之相关的日期范围。换句话说:
我想从Items表中开始,然后排除那些已经有订单并且其中至少一个订单是在2个月范围内下的物品。
如何做到这一点?