events と event_dates の 2 つのテーブルに参加しようとしています。各イベントには多くの日付があります。
イベント テーブルには , が含まれID
ますname
。event_dates - ID
、event_id
、date
、place_id
毎日がevent_dates
表の 1 行です。異なる日のためplace_id
に異なる場合があります。
今月のイベントのリストを表示したいのですが、今日のものだけが place_id = 1 です。
そのためにどのようなSQLクエリを書くべきですか? ありがとう
編集
event_dates
申し訳ありませんが、各イベントの表を表示する必要があるイベントとともに結果を見逃してしまいました。
結果は次のようになります
1) event id and name with its dates for this month (and for today place_id = 1)
2) other event id and name with its dates for this month (and for today place_id = 1)
etc
SELECT e.*, d.date
FROM events e
JOIN event_dates d
ON e.id = d.event_id
WHERE d.date BETWEEN {d '2013-08-01'} and {d '2013-08-31'}
AND d.place_id = 1
このクエリは機能しません。なぜなら、すべての月で place_id が 2、3、またはそれ以外の場合で、今日のみ 1 の場合、event_dates テーブルの今日の行のみを含むイベントのみが発生するためです。
RESULT は次のようになります。
Aug1 Aug2 Aug3 .... Aug21(today) . . .Aug30
eventName1 placeId placeId placeId placeId placeId
eventName2 placeId placeId placeId placeId placeId
eventName3 placeId placeId placeId placeId placeId
そのため、今月の情報を含むイベントのリストを表示していますが、リストされているすべてのイベントには、今日の placeId = 1 が必要です。