我有两个表,一个很简单,比如命名为orders和due_dates
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)
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())