通过id获得最多的数量

时间:2011-07-03 03:21:16

标签: mysql sql

我有一个论坛。我想执行一个SQL查询,这样我就可以得到博客提交最多的用户。我有2个表,blogsusers

blogs表格author_iduser_id表格中的users

所以这就是我试图做但却没有成功的事情:

SELECT b.author_id FROM blogs b 
INNER JOIN users u ON b.author_id = u.user_id 
ORDER BY count(author_id) DESC 
GROUP BY b.author_id 
LIMIT 0,10;

是否可以帮助我找到大多数博客提交的用户,换句话说,我需要找到author_id表中最常出现的blogs。谢谢!

3 个答案:

答案 0 :(得分:2)

您不需要加入users,只需要GROUP BY和LIMIT:

SELECT author_id
FROM blogs
GROUP BY author_id
ORDER BY COUNT(*) DESC
LIMIT 1

GROUP BY告诉COUNT它应该计算哪些组;在这种情况下,它应收集每个author_id的博客并将其计为单个组。

答案 1 :(得分:0)

SELECT COUNT(a.*) AS total, a.author_id
FROM blogs AS a
GROUP BY author_id
ORDER BY total DESC
LIMIT 1

答案 2 :(得分:0)

查询的不同部分顺序错误。这应该工作

SELECT b.author_id
FROM blogs b
INNER JOIN users u ON b.author_id = u.user_id
GROUP BY b.author_id
ORDER BY COUNT( b.author_id ) DESC 
LIMIT 0 , 10

请参阅有关SELECT Syntax

的MySQL文档

另外,我假设您的示例有点简化,因为正如其他人所指出的那样,在这种情况下确实不需要连接。