mysql查询在过去日期和当前日期之间查找
我有两个表,一个是这样简单的命名订单和到期日mysql查询在过去日期和当前日期之间查找,mysql,Mysql,我有两个表,一个是这样简单的命名订单和到期日 id | name | price | due_id | status 1 a 10 1 0 2 b 20 1 0 3 c 30 1 1 4 d 40 2 0 4 d 40 2 1 还有一张有日期的桌子 id | start_dat
id | name | price | due_id | status
1 a 10 1 0
2 b 20 1 0
3 c 30 1 1
4 d 40 2 0
4 d 40 2 1
还有一张有日期的桌子
id | start_date | end_date
1 2011-04-01 2011-05-21
2 2011-07-01 2011-07-15
我试图找到的是过去期间状态为0的所有订单,以及当前期间状态为0和1的所有记录。我知道如何从当前期间获取订单
SELECT *
FROM orders
INNER JOIN due_dates ON orders.due_id = due_dates.due_id
AND now() BETWEEN due_dates.start_date AND due_dates.end_date
AND status in (0,1);
看起来您只在问题中粘贴了部分查询。是否缺少某些内容?您的问题是…?添加了完整查询对不起,如果我只发布问题,我认为这将是最好的,而您试图解决的问题是,您希望查询只选择最近过去期间的订单,状态为0?是当前+所有过去期间,状态为0如果我添加第三个表,是否应使用group by?因为它显示了所有的记录我想那是因为statement@user828061我不知道,这取决于你打算做什么。无论如何,如果这有帮助的话,我更新了查询,使其更加严格。
SELECT *
FROM orders
INNER JOIN due_dates ON orders.due_id = due_dates.due_id
WHERE
(status in (0,1) and now() BETWEEN due_dates.start_date AND due_dates.end_date) OR
(status = 0 AND due_dates.end_date < now())