Php mysql查询找到最高分数并使用DISTINCT

Php mysql查询找到最高分数并使用DISTINCT,php,mysql,Php,Mysql,我的桌子是空的 +--------+------+-------+ | userId | tid | score | +--------+------+-------+ | 1 | 1 | 850 | | 1 | 1 | 750 | | 2 | 1 | 890 | | 2 | 1 | 750 | | 3 | 2 | 500 | | 3 | 1 | 720 | +-------

我的桌子是空的

+--------+------+-------+
| userId | tid  | score |
+--------+------+-------+
|  1     | 1    | 850   |
|  1     | 1    | 750   |
|  2     | 1    | 890   |
|  2     | 1    | 750   |
|  3     | 2    | 500   |
|  3     | 1    | 720   |
+--------+------+-------+

我需要为这个表中的3个最高分颁发3个奖项。其他地方不需要相同的用户名。我需要拿到tid=1的最高分数。对userID使用DISTINCT。我能做什么?

您可以简单地按用户ID分组,以获得每个用户的结果,并按最大值(分数)降序排列;因为你是按用户ID分组的,所以你会得到一个用户列表,上面有他们的最大分数

SELECT userid, MAX(score) score 
FROM scores
GROUP BY userid
ORDER BY MAX(score) DESC;

.

试试这个。它将以降序(从高到低)返回所有具有最大值的userid


您可以使用下面的查询

从得分中选择不同的用户ID,其中tId=1按得分顺序描述
限制3

您编写了什么查询?请正确描述您的问题。?需要最高3个值,tid=1中一个用户ID的最高值为何按uou顺序写入max(分数)可以简单地按分数顺序写入。按用户ID顺序按分数描述从分数组中选择用户ID、最大(分数)分数;
SELECT userId, MAX(score) FROM table
GROUP BY userId ORDER BY MAX(score) DESC