Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按id获取最多计数_Mysql_Sql - Fatal编程技术网

Mysql 按id获取最多计数

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

我有一个论坛。我想执行一个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,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如果你问我的网站,它是一个论坛。我可能应该用“主题”这个词来代替博客,但这只是我的一个偏好。是的,我的博客的确是简化了。我不知道正确的方法,因此尝试使用联接表。谢谢你的建议!