2013-09-05 52 views
1

我有表(dataTbl)像波纹管。如何获取明智的报告从MySql

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年1月8日之间获得输出像娄30-08-2013后,我执行查询: -

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以及条目数开始。

回答

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

所以我们需要两张桌子... – rkaartikeyan

+1

@rkaartikeyan这是**最好的**方式。 – Kermit

+0

嗨... @ rkaartikeyan你能给我第二个表(all_dates)的查询吗?在此先感谢:D –