我需要一些关于查询的指导。
我有一个订单表。它有以下列(以及其他)
OrderID | OrderDate | CustomerID
我想找2012年下单,2013年没有下单的客户。
(实际上我最终会想要更精确的(在 2012 年 3 月订购的客户,而不是 2013 年订购的客户))
我知道我可以做两个查询 -
"SELECT * FROM TABLE WHERE OrderDate BETWEEN 2012-01-01 AND 2012-12-31"
"SELECT * FROM TABLE WHERE OrderDate BETWEEN 2013-01-01 AND 2013-12-31"
然后分析结果,不过好像纯mysql应该可以吧。
也许是 self 加入?还是嵌套的 SELECT?我对这些不是很熟悉,很难找到相关的例子。感谢您的帮助!
最佳答案
不需要连接;仅在按客户分组时过滤订单:
SELECT CustomerID
FROM Orders
GROUP BY CustomerID
HAVING SUM(OrderDate BETWEEN 2012-03-01 AND 2012-03-31)
AND NOT SUM(OrderDate BETWEEN 2013-01-01 AND 2013-12-31)
关于php - Mysql Select 去年但不是今年的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17537981/