2 つの MySQL テーブル SPONSORSHIPS と EVENTS があります。スポンサーシップをスポンサーするイベントのカテゴリ別に並べ替えたリストを表示したいのですが、各イベントでスポンサーシップを 1 回だけ表示したいと考えています。結合テーブルの例:
SPONSORSHIPS
sponsorhipid | sponsorid | eventid | date |
-------------|-----------|---------|------------|
1 | 3 | 20 | 06/01/2013 |
2 | 2 | 20 | 06/02/2013 |
3 | 3 | 20 | 06/03/2013 |
4 | 2 | 21 | 06/04/2013 |
EVENTS
eventid | name | premium |
--------|-----------|------------|
20 | Lunch | 0 |
21 | Dinner | 1 |
JOINの結果として欲しいのは次のとおりです。
sponsorhipid | sponsorid | eventid | date | name | premium |
-------------|-----------|---------|------------|---------| ---------|
1 | 3 | 20 | 06/01/2013 | Lunch | 0 |
2 | 2 | 20 | 06/02/2013 | Lunch | 0 |
4 | 2 | 21 | 06/04/2013 | Dinner | 1 |
試しDISTINCT
てみGROUP BY
ましたが、これらはイベントを折りたたむため、スポンサー #2 が 2 つの異なるイベントを後援している場合でも、それらは 1 回しか表示されません。どうすればこれを達成できますか?これが私の最後のSQLクエリです:
SELECT DISTINCT (sponsorships.sponsorshipid), sponsorships.*, events.*
FROM events
INNER JOIN sponsorships
ON events.eventid = sponsorships.eventid
ご指摘ありがとうございます。