我正在尝试为视频游戏创建一个高分板。
有一个users表:

还有一张scores桌子:

我试过使用这个查询:
SELECT MAX(`scores`.`score`) AS max_score,
    `scores`.`team`,
    `users`.`name`
FROM `scores`
    LEFT JOIN `users`
    ON `users`.`id` = `scores`.`user_id`
GROUP BY `scores`.`user_id`
ORDER BY max_score DESC
LIMIT 50
返回此结果(示例):

如您所见, userFUNTIMES的得分210被归因于根据表格eagles应该归因于的时间( 's是 11)。vikingsscoresFUNTIMESuser_id
我将如何解决这个问题?像这样的东西会很好地工作:
SELECT `scores`.`score`, `scores`.`team`, `users`.`name`
FROM `scores`
LEFT JOIN `users`
ON `users`.`id` = `scores`.`user_id`
WHERE `scores`.`id` IN (
    SELECT MAX(`scores`.`score`)
    FROM `scores`
    GROUP BY `scores`.`user_id`
)
ORDER BY `scores`.`score` DESC
LIMIT 50
但是,当然,我不能选择 WHERE idis IN score。我完全迷路了。
提前感谢您的帮助。
编辑:对不起,我忘了提:每个用户只能在高分表中显示一次。(这就是为什么我的user_id查询中有 GROUP BY 规定的原因。)