私はこのようなテーブルとデータを持っています:
会場テーブルに含まれるもの:id
+ ---- + --------- + | id | 名前| + ---- + --------- + | 1 | 会場1| | 2 | 会場2| --------------- event_dates:id、event_id、event_from_datetime、event_to_datetime、venue_id + ---- + ---------- + --------------------- + ----------- ---------- + ---------- + | id | event_id | event_from_datetime | event_to_datetime | 会場ID| + ---- + ---------- + --------------------- + ----------- ---------- + ---------- + | 1 | 1 | 2009-12-05 00:00:00 | 2009-12-07 00:00:00 | 1 | | 2 | 1 | 2009-12-09 00:00:00 | 2009-12-12 00:00:00 | 1 | | 3 | 1 | 2009-12-15 00:00:00 | 2009-12-20 00:00:00 | 2 | + ---- + ---------- + --------------------- + ----------- ---------- + ---------- +
これが私の要件です。2009-12-0600:00:00に無料になる会場が欲しいです。
私は得る必要があります
| ventue_id |
| 2 |
現在、次のクエリがあります。
ven.id、evtdt.event_from_datetime、evtdt.event_to_datetimeを選択します 会場からven 左参加event_datesevtdt on(ven.id = evtdt.venue_id) ここで、evtdt.venue_idはnullです かどうか('2009-12-06 00:00:00' evtdt.event_from_datetime およびevtdt.event_to_datetime); + ---- + --------------------- + --------------------- + | id | event_from_datetime | event_to_datetime | + ---- + --------------------- + --------------------- + | 1 | 2009-12-09 00:00:00 | 2009-12-12 00:00:00 | | 2 | 2009-12-15 00:00:00 | 2009-12-20 00:00:00 | | 3 | NULL | NULL | | 5 | NULL | NULL | + ---- + --------------------- + --------------------- +
結果に注意すると、日付が2009-12-06 00:00:00の間にある会場ID1は含まれていませんが、他の予約が表示されています。このクエリを修正するのを手伝ってください。
前もって感謝します。