我有2张桌子,餐厅和订单,每家餐厅都有很多订单
restaurants table
id
name
orders table
id
restaurant_id
date
status
如果某个日期没有订单 - 这意味着订单表中没有行。如果有订单,其状态可以是 0、1 或 2。orders 表中的每一行代表一天。
我需要找到那些在2013-08-15
and之间2013-08-25
(包括当天 - 2013-08-19
)根本没有订单(这意味着订单表中没有适当的行)或订单状态为 0 或 1 的餐厅,但还有这些条件今天的订单应该有状态 - 2。所以,如果某个餐厅没有今天的订单或者它的状态不是 2 - 这家餐厅不应该在结果中列出,但是如果今天的订单存在并且它的状态是 2结果应包含该餐厅以及上述日期范围内的所有订单列表。
通过这个查询,我得到了没有今天条件部分的结果。
SELECT r.`id`, r.`name`
FROM restaurants r
LEFT JOIN orders o ON r.id = o.restaurant_id AND o.date between '2013-08-15' AND '2013-08-25'
where o.id is null OR o.`status` = 0 OR o.status = 1
我怎样才能添加那个条件呢?
谢谢