0

如果我有一个对名称进行排序的 MYSQL 表和一个对值进行排序的表。

示例如下:

ID name   value
-- ------ -----
1  John     500
2  Rock     350
3  Wayne    700
4  John     350
5  Rock     250
6  Nick     100
7  Sweety    75
8  Lex      350

如何显示每个用户的总值?而且,如果我想过滤它以仅显示前 3 个,是否有一个简单的命令?还是我需要做某种功能。

在 PHP 中

John 850
Wayne 700
Rock 600
Lex 350
Nick 100
Sweety 75
4

2 回答 2

2

它可以通过聚合来完成,有点

SELECT ID, name, SUM(value) as total_score 
FROM user_scores 
GROUP BY name
ORDER BY total_score
于 2013-06-17T21:08:27.203 回答
2

您需要一个聚合函数,特别是SUM. 您可以按选择列表中的任何值对查询进行排序,从高到低只需使用DESC关键字:

SELECT Name, SUM(value) AS TotalValue
FROM myTable
GROUP BY Name
ORDER BY TotalValue DESC

AS TotalValue将确保列名是TotalValue您在 PHP 中引用它时的名称。

于 2013-06-17T21:09:10.987 回答