我正在編寫一個查詢以返回在特定時間段內每天寫入的博客帖子數。當某一天沒有博客記錄時,我的問題就出現了。用我的查詢,那一天的結果就完全被忽略了。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