如何在查找满足条件的行数时返回计数值0

时间:2016-12-06 15:35:08

标签: mysql

$query = mysqli_query($conn, "SELECT BLOGGER_URL, COUNT(*) as NUM FROM Blog_Posts    GROUP BY URL ORDER BY NUM DESC");

我使用此查询返回基于博客作者发布的帖子数量排序的数据行。每个帖子都有一个归因于它的博主网址,因此我会计算博客网址的数量以确定计数。  我试图根据博主发布的帖子数来订购一些行,但现在查询只返回计数为1或更多的值。所以没有帖子的Blogger不会被退回。

如何编辑查询以按顺序返回所有博客?

谢谢,我对数据库一般都很陌生。

编辑:

我在这里有两个相关的表:一个博客表,一个主键博客网址和一个博客帖子表,使用博客网址作为FK。博客文章引用博客表格中的给定博主

2 个答案:

答案 0 :(得分:1)

您应该将您的查询加入到users表中,以便计算所有用户的数量,而不仅仅是那些有帖子的用户。我不知道你的桌子结构,但你可以用以下基本方式来做。

SELECT Blog_Users.userid, COUNT(Blog_Posts.*) as NUM 
FROM Blog_Users
LEFT OUTER JOIN Blog_Posts ON Blog_Posts.BLOGGER_USERID= Blog_Users.userid
GROUP BY Blog_Users.userid ORDER BY NUM DESC

答案 1 :(得分:0)

您的计数为1或更多是正常的,因为Blog_Post表中不存在未发布的Blogger,因此如果您希望它们返回,只需在查询中加入Bloggers表即可离开加入。

希望这会对你产生影响