2013-07-30 40 views
1

夾具表的名單MySQL的選擇最後N行有關的ID

uid home_uid away_uid winner date  season_division_uid 
1 26  6  6  2013-07-30 18 
2 8  21  8  2013-06-30 18 
3 6  8  8  2013-06-29 18 
4 21  26  21  2013-05-20 18 
5 6  26  6  2013-04-19 18 

此表包含數百行。

目前,我有一個查詢在一個部門,選擇所有的球隊,即

SELECT team_uid 
FROM Season_Division_Team 
WHERE season_division_uid='18' 
  • ,列出了球隊的UID即[6,26,8,21,26]行。

現在對於每個獨特的團隊ID,我想返回他們參與的(他們可能是一個away_uid或home_uid)日期列排序的最後3個贏家值。

,返回的值的例子是:

team_id winner date 
6  6  2013-07-30 
6  8  2013-06-29 
6  26  2013-04-19 
26  6  2013-07-30 
26  21  2013-05-20 
26  6  2013-04-19 

任何想法?謝謝

+0

那你試試這麼遠? –

+0

我正在尋找最好的方法來嘗試並以此爲出發點。這不是在 – badgers

+0

之前發生的情況。查詢將會非常複雜(帶有子選擇),因爲您希望從每個集合(按團隊ID)返回子集(按記錄數)。編寫您的查詢以按需要的順序返回每個團隊的所有記錄,然後引入子選擇來限制每個團隊返回的結果數量。 –

回答

0

林不知道如何得到它的直接,查詢像

select * from Season_division_Team where 
`date >= (select min(`date`) from 
(select `date` from season_division_team order by date desc limit 3)) 
and (home_uid = 6 or away_uid = 6) 

那不會是一個很好的查詢。但只有這樣,我能想到的目前

它很難從SQL Example

子查詢試圖讓其中最後的勝利發生日期,那麼這裏後讓所有日期來獲得的第三大值球隊踢了。

編輯:

SELECT * FROM Season_Division_Team WHERE winner = 6 ORDER BY `date` DESC LIMIT 3 

這聽起來更像是你的後面評論

+0

我同意 - 這不是一個好的查詢。更不用說,它不會幫助OP考慮他想要的一個起點 –

+0

。我給查詢添加評論 – exussum

+0

我不確定自己是否在原始文章中正確解釋了自己。我正在尋找從Fixture表中抽取3行,對於我擁有的每個團隊用戶,它們可以位於home_uid或away_uid列中 - 按日期列排序。 – badgers