我正在编写一个查询以返回在特定时间段内每天写入的博客帖子数。当某一天没有博客记录时,我的问题就出现了。用我的查询,那一天的结果就完全被忽略了。MySQL GROUP BY日期 - 如何在没有行时返回结果
这里是我的查询:
SELECT DATE(`posted`), COUNT(`id`)
FROM `blogs` WHERE `status` = 'active'
&& `posted` BETWEEN `2011-01-01` AND `2011-05-01`
GROUP BY DATE(`posted`)
它返回一个类似的东西:它缺少2011-01-03,因为它没有任何职位
count | date
_________________
2 | 2011-01-01
5 | 2011-01-02
1 | 2011-01-04
通知。
如何让它显示那些有0个帖子的日子?
我该如何处理这种动态的方式?我想知道最新的统计数据,并希望能够随机选择日期范围。 – johnnietheblack 2011-05-13 06:53:08
@johnnietheblack - 确保您的日期表包含足够大的范围以覆盖所有可能的查询 - 因为如果日期表包含从1900到2100的所有日期(例如 - a),则仍在过滤WHERE子句中的日期一点点矫枉过正)它真的无所谓 - 只要确保你索引这张表的日期列! – 2011-05-13 06:55:03