2016-12-06 58 views
0
$query = mysqli_query($conn, "SELECT BLOGGER_URL, COUNT(*) as NUM FROM Blog_Posts GROUP BY URL ORDER BY NUM DESC"); 

我正在使用此查询返回基于博客发布的帖子数量排序的数据行。每篇文章都有一个博客网址归因于它,所以我正在统计博客网址的数量以确定点数。 我想根据博客发布的帖子数来排列一些行,但现在查询只返回具有1或更多数量的值。所以没有帖子的博主不会被退回。如何在查找满足条件的行数时返回0的计数值

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

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

编辑:

我有与此相关的两个表:与主键博客网址和使用该博客网址为FK一个博客帖子表中的博客表。博客帖子是指博客表格中的给定博客

+0

你在哪里存储博客的完整列表和任何关联的blogger_urls? – Shadow

+1

可能重复的[Mysql计数返回零,如果没有找到记录](http://stackoverflow.com/questions/1528688/mysql-count-return-zero-if-no-record-found) – Shadow

+0

@Shadow的链接上面的帮助? – Drew

回答

1

你应该加入您的查询用户表,让你得到所有用户的计数不只是那些帖子。我不知道你的表格结构,但你可以用下面的基本方法来完成。

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 
+0

是有道理的,会给这个去 –

+0

今天早上刚刚尝试了这一点,感谢一堆,永远不会有我自己得到这个 –

0

这是正常的,你有1或更多的计数,导致没有发布的Bloggers不存在于Blog_Post表中,所以如果你想让它们返回,只需在查询中使用左连接加入博主表格。

希望这heleped你

相关问题