Mysql 按id获取最多计数
我有一个论坛。我想执行一个SQL查询,这样我就可以得到提交博客最多的用户。我有两个表,Mysql 按id获取最多计数,mysql,sql,Mysql,Sql,我有一个论坛。我想执行一个SQL查询,这样我就可以得到提交博客最多的用户。我有两个表,blogs和users blogs表具有author\u id,这是users表中的用户id 下面是我试图做但没有成功的事情: 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,1
blogs
和users
blogs
表具有author\u id
,这是users
表中的用户id
下面是我试图做但没有成功的事情:
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;
请您帮助我找到提交博客最多的用户,或者换句话说,我需要找到在
博客
表中出现次数最多的作者id
。谢谢 您不需要加入用户
为此,您只需要一个分组人和一个限制:
SELECT author_id
FROM blogs
GROUP BY author_id
ORDER BY COUNT(*) DESC
LIMIT 1
GROUP BY告诉计数它应该计数哪些组;在这种情况下,它应该收集每个
作者id
的博客,并将其作为单个组进行计数。查询的不同部分顺序错误。这应该行得通
SELECT COUNT(a.*) AS total, a.author_id
FROM blogs AS a
GROUP BY author_id
ORDER BY total DESC
LIMIT 1
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
请参阅MySQL文档中有关的
另外,我假设您的示例有点简化,因为正如其他人所指出的,在这种情况下确实不需要加入。谢谢,这似乎是可行的。我们有5000多名用户,这就是为什么我说我不是100%确定。但是它看起来是正确的:)@Nazar:你可以去掉
限制并使用选择作者id,COUNT(*)
来查看所有计数。基本上,你查询中的语法有点错误:groupby应该在ORDER BY之前,就像你在所有答案中看到的那样。这是一针见血,我知道。。。但它是一个论坛,还是一个博客?这两个概念非常不同。@Filmzy如果你问我的网站,它是一个论坛。我可能应该用“主题”这个词来代替博客,但这只是我的一个偏好。是的,我的博客的确是简化了。我不知道正确的方法,因此尝试使用联接表。谢谢你的建议!