mysql> SELECT d.day AS day FROM dateref d WHERE day BETWEEN '2007-03-15' AND '2007-03-20'; +------------+ | day | +------------+ | 2007-03-15 | | 2007-03-16 | | 2007-03-17 | | 2007-03-18 | | 2007-03-19 | | 2007-03-20 | +------------+ 6 rows in set (0.01 sec) mysql> SELECT DISTINCT DATE(logdate) FROM logtable WHERE src='foo' AND DATE(logdate) BETWEEN '2007-03-15' AND '2007-03-20'; +-------------+ | DATE(added) | +-------------+ | 2007-03-15 | | 2007-03-16 | | 2007-03-18 | | 2007-03-19 | | 2007-03-20 | +-------------+ 5 rows in set (0.10 sec) mysql> SELECT d.day, COUNT(l.id) as hits FROM dateref d LEFT JOIN logtable l ON d.day = date(l.logdate) WHERE src = 'foo' AND d.day BETWEEN '2007-03-15' AND '2007-03-20' GROUP BY d.day; +------------+------+ | day | hits | +------------+------+ | 2007-03-15 | 3 | | 2007-03-16 | 3 | | 2007-03-18 | 1 | | 2007-03-19 | 7 | | 2007-03-20 | 3 | +------------+------+ 5 rows in set (0.02 sec) +------------+--------+ | day | id | +------------+--------+ | 2007-03-15 | 148594 | | 2007-03-15 | 149323 | | 2007-03-15 | 149325 | | 2007-03-16 | 151766 | | 2007-03-16 | 152199 | | 2007-03-16 | 152203 | | 2007-03-18 | 156818 | | 2007-03-19 | 157510 | | 2007-03-19 | 158086 | | 2007-03-19 | 158960 | | 2007-03-19 | 159319 | | 2007-03-19 | 159720 | | 2007-03-19 | 159810 | | 2007-03-19 | 159878 | | 2007-03-20 | 161355 | | 2007-03-20 | 162925 | | 2007-03-20 | 163051 | +------------+--------+ 17 rows in set (0.02 sec) mysql>