我有表格(dataTbl),如下所述。
id date
1 05-08-2013
2 10-08-2013
3 11-08-2013
4 12-08-2013
5 12-08-2013
6 12-08-2013
7 21-08-2013
8 22-08-2013
9 23-08-2013
10 23-08-2013
11 24-08-2013
12 29-08-2013
13 30-08-2013
14 30-08-2013
15 30-08-2013
我希望在执行查询后,在2013年8月1日至2013年8月30日期间得到如下的输出: -
date entries
01-08-2013 0
02-08-2013 0
03-08-2013 0
04-08-2013 0
05-08-2013 1
06-08-2013 0
07-08-2013 0
08-08-2013 0
09-08-2013 0
10-08-2013 1
11-08-2013 1
12-08-2013 3
13-08-2013 0
14-08-2013 0
15-08-2013 0
etc., etc.,
如何在MySQL查询中执行此操作?请帮帮我!
在表中,它有第5,第10,第11,第12(3个条目),第21,22,23(2个条目)的记录。
但是输出应该从01,02,03,04,05,06,07,08,09,10 ......开始,有条目数。
答案 0 :(得分:2)
如果你不想使用php或存储过程,你需要第二个表来列出所有日期,如all_dates
select listdate, count(datatbl.date) from all_dates
left outer join datatbl on all_dates.listdate = datatbl.date
或者
Select listdate,0 from all_dates where listdate not in (select distinct date from datatbl)
union
select date, count(*) from databl group by date