2 つのテーブル、レストラン、注文があり、各レストランには多くの注文があります
restaurants table
id
name
orders table
id
restaurant_id
date
status
ある日付に注文がない場合-注文テーブルに行がないことを意味します。注文がある場合、そのステータスは 0、1、または 2 のいずれかです。orders テーブルの各行は 1 日を表します。
2013-08-15
たとえば、 ~の間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
どうすればその条件も追加できますか?
ありがとう