mysql - 在 mysql 表中选择不同的值

标签 mysql sql

这是我的 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/

相关文章:

mysql - 如何按列具有特定值的组求和

mysql - 正确使用mysql中的where?

具有多列的 PHP MySQL 更新集查询

php - 您关注的人的 mysql Activity 源(点赞、评论等)

mysql - 如何使用 'Check' 语句来验证 mysql 中的字段值?

java - Android Java 连接到 SQL Server 2008

php - 以表格格式php显示来自mysql查询的数据

sql - 通过 SSH 将 SQL DB 备份到 Mac 桌面

javascript - 如何利用此 MySQL javascript 代码创建数据库/编写查询

MySQL区分e和é(e尖锐)——UNIQUE索引