在分组中显示空日期?

时间:2013-04-19 19:40:21

标签: mysql date count group-by

我目前正在使用MySQL来计算过去一周按日期创建的行数。 这是我的表格的样本:
My Table
使用以下SQL查询(并考虑它是2013年4月20日)

SELECT DATE(Date) AS Date,
       COUNT(id) AS Count
FROM notes
WHERE UNIX_TIMESTAMP(Date) + 604800 >= UNIX_TIMESTAMP()
GROUP BY DAY(Date)
ORDER BY Date ASC

我得到以下结果。
Output
但是,由于我要经历过去一周,所以我也想要没有这样的行的日子:

Desired Output

我将如何做到这一点?

1 个答案:

答案 0 :(得分:3)

我认为最简单的方法是

select a.*, b.`Count`
   FROM 
   (
   select date(now()) as dt 
   union all
   select date(now()-interval 1 day)
   -- then the same for - 2 day, -3 , etc
   )a
   LEFT JOIN 
   (
     --your query
   )b ON (a.dt = b.`date`)