Php 如果在分数表中有分数,如何获得按用户名排序的列表?
我有两个名为“用户”和“分数”的表格Php 如果在分数表中有分数,如何获得按用户名排序的列表?,php,sql-order-by,mysql,Php,Sql Order By,Mysql,我有两个名为“用户”和“分数”的表格 我想按用户名列出用户顺序,用户名应该在分数表中 用户表: id Username 1 D 2 B 3 F 4 A 5 E 6 C 评分表: Scorid UserID score 1 3 156 2 4 202 3 4 890 4 6 346 5 3 657 6 5 658 7 5
我想按用户名列出用户顺序,用户名应该在分数表中 用户表:
id Username
1 D
2 B
3 F
4 A
5 E
6 C
评分表:
Scorid UserID score
1 3 156
2 4 202
3 4 890
4 6 346
5 3 657
6 5 658
7 5 700
8 5 263
9 2 1089
10 3 745
我想要一个这样的列表:
UserName score
A 890
A 202
B 1089
C 346
E 700
E 658
E 263
F 745
F 657
F 156
*列表必须按用户名排序,并且分数在用户名组中也是按顺序排列的*用户“D”未被列出,因为它未获得任何分数
*用户可能有多个分数
我是用PHP写的,我用的是mysql
哪个查询在一个查询中给出这个列表?这是您想要使用正确名称运行的查询(MySQL)(请注意,我已将您的表名称更改为复数):
Select Username, score
from user, score
where score.UserID = user.id and
score > 0
order by username, score
接受的答案是错误的,因为默认顺序是升序,所以202将高于890。。。这就是为什么我在回答中添加了DESC。当人们没有正确地检查答案就接受答案时,这有点可笑。(我的英语很差)你是对的,这是我的错误,我很快就接受了,并将所有答案混合到我的代码中。
SELECT
user.username,
score.score
FROM user
LEFT JOIN score
ON score.UserID = user.id
SELECT username, score
FROM `score`
JOIN `user` ON id = UserID
ORDER BY username ASC , score DESC