我有如下表(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
我想在执行查询后在 01-08-2013 到 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... 开头,带有条目数。
最佳答案
如果您不想使用 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
关于php - 如何从 MySql 获取日期明智的报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18642702/