Php MySQL按另一个表中用户的总行排序

Php MySQL按另一个表中用户的总行排序,php,html,mysql,sql,Php,Html,Mysql,Sql,假设,我想显示一个按用户发送的最多消息数排序的用户列表 我有两个表:用户和消息 我有10个用户 用户A发送了20条消息(消息表中有20行) 等等 我想创建一个查询,该查询将按用户发送的邮件总数的顺序列出用户。比如: 1. A (20 msgs) 2. C (19 msgs) 3. B (17 msgs) 4. D (13 msgs) 我尽力了,但找不到任何查询来执行此操作。请帮忙。提前感谢。如果要打印“名称加入用户”表 SELECT user, COUNT(*) FROM messages G

假设,我想显示一个按用户发送的最多消息数排序的用户列表

我有两个表:
用户
消息

我有10个用户

用户A发送了20条消息(消息表中有20行)

等等

我想创建一个查询,该查询将按用户发送的邮件总数的顺序列出用户。比如:

1. A (20 msgs)
2. C (19 msgs)
3. B (17 msgs)
4. D (13 msgs)

我尽力了,但找不到任何查询来执行此操作。请帮忙。提前感谢。

如果要打印“名称加入用户”表

SELECT user, COUNT(*) FROM messages GROUP BY user ORDER BY count(*) DESC;
select user_name, count(*) from users inner join messages m on users.userid=m.messageid group by userid order by count(*) desc;

如果要打印“名称加入用户”表

select user_name, count(*) from users inner join messages m on users.userid=m.messageid group by userid order by count(*) desc;

您可以使用
别名进行排序

SELECT user, COUNT(1) as cnt
FROM Messages 
GROUP BY user 
ORDER BY cnt DESC;
位置

SELECT user, COUNT(1) as cnt
FROM Messages 
GROUP BY user 
ORDER BY 2 DESC;

您可以使用
别名进行排序

SELECT user, COUNT(1) as cnt
FROM Messages 
GROUP BY user 
ORDER BY cnt DESC;
位置

SELECT user, COUNT(1) as cnt
FROM Messages 
GROUP BY user 
ORDER BY 2 DESC;

正在键入答案,突然出现了一声巨响。不需要继续,这是你的答案。是的,我讨厌这种情况发生;)在使用上述查询时,它只给出一行。预期的行为是它应该按计数(*)的顺序获取所有结果不,它没有。您做错了什么,或者您的数据只有一个
user
值。您正在键入答案,然后出现了提示。不需要继续,这是你的答案。是的,我讨厌这种情况发生;)在使用上述查询时,它只给出一行。预期的行为是它应该按计数(*)的顺序获取所有结果不,它没有。您做错了什么,或者您的数据只有一个值用于
用户
。请不要不必要地重复您的问题,此可能的副本已由您自己在同一时间发布。请不要不必要地重复您的问题,此可能的副本已由您自己在同一时间发布。