restaurant_id,status和date字段,在订单表中每天都有一行记录。
我需要筛选出餐厅,并仅显示在某个日期范围内至少有一个预订的餐厅,但必须在日历上显示,看起来像是带有信息的餐厅列表。
类似于这样:

至少有一个保留状态的日期条件,则应获取该餐厅该日期范围内所有订单。
我无法进行常规的内部联接。
SELECT r.`id`, r.`name`, o.`date`, o.`status`
FROM restaurants r
INNER JOIN orders o ON r.id = o.restaurant_id AND o.date BETWEEN '2013-08-10' AND '2013-08-31'
AND status = 'reserved'
因为在这种情况下,例如,我将无法获得8月31日餐厅2的订单信息,因为尽管它在10-31的日期范围内,但其状态为“关闭”。 因此,我考虑进行左连接,如下所示:
SELECT r.`id`, r.`name`, o.`date`, o.`status`, o.`id` order_id
FROM restaurants r
LEFT JOIN orders o ON r.id = o.restaurant_id AND
o.date BETWEEN '2013-08-10' AND '2013-08-31'
WHERE o.`id` IS NOT NULL
但是我还需要添加一个条件,以确保至少有一行订单状态为“reserved”,我尝试添加像COUNT(o.status = 1) > 0这样的where子句,但它会报错。
谢谢。