2 つのテーブルを備えた単純な教室予約システムがあります。
部屋 :
1. id
2. name
3. localisation
カレンダー :
1. id
2. idroom
3. year
4. month
5. days
days は 31 文字の文字列です (1 日ごとに 1 文字)。文字は次のとおりです。「0」は無料です。「1」は第 1 段階の予約です。占領中の「3」
カレンダーは必要に応じて作成されるので、私の問題は、空いている教室を求めて、確認した期間のカレンダーエントリがない教室を取得することです。たとえば、classroom1 は 2013 年 12 月 1 日から 2013 年 3 月 2 日まで占有されており、この教室のカレンダー テーブルにはもうエントリがありません。また、2013 年 1 月 12 日から 2013 年 4 月 12 日まで予約を依頼した場合、結果に教室 1 を含める方法がわかりません。月は null で、年も指定できます。左結合を試みましたが、「null です」が成功しませんでした。
これは私のリクエストの最初の部分です。これは機能しますが、その期間の「カレンダーのない部屋」は表示されません。
SELECT DISTINCT room.id
FROM room LEFT JOIN
calendar
ON room.id=calendar.idroom
WHERE (calendar.year=2013 AND calendar.month=12 and calendar.days like "0000%")
ご協力ありがとうございました。