1

我有如下表(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... 开头,并带有条目数。

4

1 回答 1

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
于 2013-09-05T17:56:41.487 回答