我有以下两个表:
orders
与orderid | orderdate | userid | ...
和users
与userid | ...
我加入他们两个:
SELECT * FROM orders
JOIN users ON orders.userid = users.id
获取包含用户提交的所有订单的表格。
现在我需要让所有在2016-11-01之间购买东西的顾客 和2017-31-01:
非常感谢帮助。
答案 0 :(得分:2)
他们可能会给你负面投票,因为你没有包含测试,你试过的查询。而且看起来你已经完全委派了这份工作。
无论如何,这是一个未经测试的查询,日期通常与该地区有关。把它看作是你如何做的想法(可能会有更清洁的方法):
SELECT * FROM users WHERE
EXISTS (SELECT * FROM orders
WHERE orderdate >= CONVERT(datetime, '2016-11-01' , 101)
AND orderdate <= CONVERT(datetime, '2017-31-01' , 101)
AND userid = users.id)
AND
NOT EXISTS (SELECT * FROM orders
WHERE orderdate <= CONVERT(datetime, '2017-31-01' , 101)
AND userid = users.id)