2016-01-20 27 views
-3

我有一個挑戰表和一個用戶表,並且我想返回每個用戶針對特定挑戰的最短時間(我正在構建最快時間的排行榜)在mysql排行榜中爲用戶返回最快時間

所以,我有:

user_id, username 
1, rita 
2, sue 
3, bob 

challenge_id, user_id, time 
1, 1, 10 
1, 1, 20 
2, 1, 5 
1, 2, 5 
1, 3, 30 
1, 3, 50 

而且我想MySQL的返回結果挑戰1:

sue, 5 
rita, 10 
bob, 30 

我一直在摸索周圍有這個問題,我覺得這幾乎是正確的,但它在ly返回單個結果,而不是全套:

SELECT u.user_id, username, ac.quickest_time AS intScore 
FROM users u 
JOIN 
(
    SELECT user_id, MIN(time_taken) AS quickest_time 
    FROM accepted_challenges 
    WHERE 
    challenges_id = 1 
) ac ON ac.user_id = u.user_id 

任何想法?

+3

**這是不是一個編碼服務**你嘗試過什麼,到目前爲止,它有什麼問題!? –

回答

1

嘗試類似:

SELECT username, MIN(time) 
FROM MyTable1 m1 INNER JOIN MyTable2 m2 
ON m1.user_id = m2.user_id 
WHERE m2.challenge_id = 1 
GROUP BY username 
+0

Whhooa,我走了!乾杯。 – ojsglobal