我不是很喜欢 MySQL,但我只需要一个声明,我非常感谢你在这方面的帮助。
我有两个表:“用户”和“分数”
这是“用户”的结构:
| user_id | user_name |
| 1 | Paul |
| 2 | Peter |
这是“分数”的结构:
| score_id | score_user_id | score_track_id | score_points |
| 1 | 2 | 23 | 200 |
| 2 | 2 | 25 | 150 |
现在我需要一个查询来为我提供某种高分列表。结果应包含 user_id、user_name 和与用户相关的所有分数的总和:我应该如下所示:
| user_id | user_name | scores |
| 1 | Paul | 0 |
| 2 | Peter | 350 |
更好的是,如果按照用户在全球排名中的位置顺序对结果进行排序,如下所示:
| position | user_id | user_name | scores |
| 1 | 2 | Peter | 350 |
| 2 | 1 | Paul | 0 |
我试过这个说法
SELECT user_id as current_user, user_name, SUM(SELECT score_points FROM score WHERE score_user_id = current_user) as ranking FROM user ORDER BY ranking DESC
这会导致语法错误。对我来说,主要问题是将'user'中的user_id连接到每行'score'中的score_user_id。
非常感谢您的帮助