2015-12-17 51 views
-3

益與用戶名,athlete_time表AHTLETE_TABLE和athlete_date 我想回到最快的時間內每一個運動員的(MIN(athlete_time)我使用此查詢:MySQL的GROUP BY - 錯誤的日期

$sql = " SELECT *, MIN(athlete_time) AS minimum 
FROM (".ATHLETE_TABLE.") 
WHERE athlete_time <> '00:00:00' 
GROUP BY athlete_username 
ORDER BY minimum ASC"; 

我得到最快的時間與錯誤的日期。我不知道我必須做的。 無論如何謝謝你的幫助。

+0

'ATHELTE_TABLE'或'ATHLETE_TABLE'? –

+3

你的意思是錯誤的日期?向我們展示數據樣本,當前結果和期望輸出。 –

+0

因此,每個運動員有多個記錄,並且您希望在那裏獲得最快的時間以及達到的日期?我可能不會按照「運動員時間」進行分組,然後在用戶名上進行區分。 – chris85

回答

0

的問題是你的小組通過帶來的是一個隨機的日期。

您需要計算中的最小值派生查詢並返回以獲取整行。

SELECT AT.* 
FROM ATHLETE_TABLE AT 
JOIN (SELECT username, MIN(athlete_time) AS minimum 
     FROM ATHLETE_TABLE   
     GROUP BY username 
    ) T 
    ON AT.username = T.username 
AND AT.athlete_time = T.minimum 

注意:要小心你想要做的,如果同一個用戶有關係的MIN(athlete_time),在這種情況下會同時顯示時間是什麼。

+0

謝謝胡安卡洛斯Oropeza :)它的作品完美。 –

+0

薩拉記得接受答案,並注意解決您的問題。 –