返回mysql排行榜中用户的最快时间
我有一个挑战表和一个用户表,我想返回每个用户针对特定挑战的最短时间。我正在构建一个最快时间排行榜 因此,我:返回mysql排行榜中用户的最快时间,mysql,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 我一直在摸索这个问题,我觉得它几乎是正确的,但它只返回一个结
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
我一直在摸索这个问题,我觉得它几乎是正确的,但它只返回一个结果,而不是完整的结果集:
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
有什么想法吗?试试以下方法:
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
这不是编码服务!到目前为止你都试了些什么,有什么问题吗?哇,我太离谱了!干杯