0
我有一個這樣的表結構(簡化)基於最小值查詢:加入對連接表
藝術家
- ArtistID
- 名稱
ArtistEvent
- ArtistID
- 事件ID
事件
- 事件ID
- 名稱
EventDates
- 事件ID
- 日期
EventGroup
- 事件ID
- 羣ID
集團
- 組ID
我想拔出具有基於組ID(所以組 - > EventGroup->事件 - > ArtistEvent->藝術家即將舉行的活動的所有藝術家。簡單,這是完成和工作。
我也想展示下一個事件,藝術家正在播放的(即與MIN(日期事件)是加入的這一部分。
正如我們已經包括內參加活動似乎我應該能夠得到事件的細節(簡單的說,可以包括在選擇內),但我們需要確保它是第一個日期(由MIN(日期)),因爲可能有多個(這是無視我們對ArtistID進行分組以廢除其餘部分)
到現在爲止,我有一個查詢拉出所有鏈接的藝術家,另一個查詢在我們的代碼中循環運行,併爲每個藝術家抽出下一個事件,但我想知道它的可能性樂在一個查詢中做到這一點?
我能得到它返回的事件,如果我做的:
SELECT artist.name, MIN(EventDate.Date), Event.Name
FROM Artist
INNER JOIN ArtistEvent ON Artist.ArtistID = ArtistEvent.ArtistID
INNER JOIN Event ON Event.EventID = ArtistEvent.EventID
INNER JOIN EventGroup ON EventGroup.EventID = Event.EventID
INNER JOIN EventDates ON EventDates.EventID = Event.EventID
WHERE EventGroup.GroupID = 1234
但這似乎過於簡單 - 將在活動。返回的名稱肯定對應於EventDates.Date
顯示的相同事件?
我想我已經迷茫了自己,需要一雙清新的眼睛?
感謝
什麼往事?如果你有他們的數據庫,MIN不會爲你工作。 – yoda 2011-02-07 14:42:14
即使在MySQL中,您是否還需要GROUP BY子句? – 2011-02-07 15:08:48