私は2つのテーブルを手に入れました。
ディーラー テーブル (id、名前など) とイベント テーブル (id、did (dealerid)、eid (fb eventid)、会場など) には、facebook からのディーラー ID、イベント ID、イベント URL、および日付が保存されます。
次の sql ステートメントですべてのデータを取得できます。
SELECT * FROM dealer as t_d INNER JOIN events AS t_e
ON t_d.id = t_e.did;
これはうまくいきます。
1 Laden Dortmund Stra 12 45525 Dortmund DE www.google.de 0201-123456 laden@dortmund.de 300 400 1 1 416364098428245 https://www.facebook.com/events/416364098428245/ 2013-01-28
2 Laden Unna Wurststr. 123 45130 Unna DE www.bing.de 0222-11223344 laden@unna.de 400 276 2 2 145457548940302 https://www.facebook.com/events/145457548940302/ 2013-03-08
2 Laden Unna Wurststr. 123 45130 Unna DE www.bing.de 0222-11223344 laden@unna.de 400 276 3 2 405092472902921 https://www.facebook.com/events/405092472902921/ 2013-04-26
ご覧のとおり、2 つのイベントがリストされているため、ディーラー ID 2 に対して 2 つの行が取得されます。
この日付 (今日) に最も近いイベントを取得するにはどうすればよいですか。
その後、20 人のディーラーが参加し、それぞれに少なくとも 3 ~ 4 のイベントが行われます。
ヒントはいいでしょう、ありがとう!
更新:
これが解決策です!
SELECT t_d.*, t_e.*, DATE_FORMAT(t_e.date,'%d.%m.%Y') as date
FROM dealer as t_d
INNER JOIN events AS t_e
ON t_d.id = t_e.did
INNER JOIN
(
SELECT did, MIN(date) minDate
FROM events
GROUP BY did
) e ON t_e.did = e.did AND
t_e.date = e.minDate
しかし、ディーラーにイベントが存在しない場合でも、どうにかしてすべてのディーラーを表示することは可能ですか?