2011-10-01 26 views
0

我有一個表有兩列teamdatedate列具有條目添加到表的日期。排序查看最新條目的數據組

我想打印按date DESC排序的每個團隊的最後10個條目。 我也想按date DESC排序這些組的條目。

我嘗試了很多東西,但沒有運氣。它有效,但有2個查詢在這種情況下是不可接受的。

我怎樣才能做到這一點與單個查詢?我覺得這是一個非常新鮮的問題。

+0

我現在正在獲取哪些數據以及您確切需要什麼。 PLZ更新你的問題 – diEcho

回答

1
SELECT rows.team, rows.date FROM (
    SELECT team, date, 
    IF(@prev <> team, @rownum := 1, @rownum := @rownum+1) AS rownum, 
    @prev := team 
    FROM my_table 
    JOIN (SELECT @rownum := NULL, @prev := 0) AS init 
    ORDER BY team, date DESC 
) AS rows 
WHERE rownum <= 10 

我們做的子查詢的臨時(虛擬)表與團隊,日期降序排序行,我們從上給人一種遞增行號的每一行開始,每當球隊的變化,我們重新排號碼,然後在外部查詢中,我們篩選出任何行號大於10的行。

+0

它正在工作。現在我必須明白這裏發生了什麼。謝謝。 – kechapito

+0

@messkech查看我剛剛添加的解釋。 – nobody