这是我的 mysql 表:
表联盟(userid 和 lid 是主键):
*userid* *lid* rank win loss streak score
---------------------------------------------------------
2 1 1 2 0 2 10
2 3 2 1 1 1 5
5 1 2 1 1 1 5
我试图只选择得分最高的用户一次。例如,由于用户 ID 2 在联赛 (lid) 1 和 3 中,因此查询中只会选择他的最高分。因此,在这种情况下,将选择得分为 10 的行,因为这是用户在联赛 1 和 3 中的最高得分。不会选择盖子为 3 的行。
所以查询结果应该是这样的:
userid lid rank win loss streak score
---------------------------------------------------------
2 1 1 2 0 2 10
5 1 2 1 1 1 5
如您所见,带有盖子 3 的用户 ID 2 不在结果中,因为盖子 1 的得分 10 比联赛 3 的得分 5 高。有什么想法吗?
最佳答案
SELECT l.userid, u.username, l.lid, l.rank, l.win, l.loss, l.streak, l.score
FROM (SELECT userid, MAX(score) AS MaxScore
FROM League
GROUP BY userid) q
INNER JOIN League l
ON q.userid = l.userid
AND q.MaxScore = l.score
INNER JOIN users u
ON l.userid = u.userid
关于mysql - 在 mysql 表中选择不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8158998/