मैंने सभी तिथियां प्राप्त करने के लिए समाधान में दी गई क्वेरी को संशोधित करके इसका पता लगाया।
यदि कोई रिकॉर्ड मौजूद है तो निम्न क्वेरी सभी दिनांक और आईडी की संख्या लौटाती है:
select d.date, count(v.id) from
(select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) date from
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) d
left join visitors v on d.date = v.date
where d.date between '2016-06-01' and '2016-06-30'
group by d.date
order by d.date
दिनांक सीमा प्राप्त करने के लिए सौजन्य @mark-bannister पर जाता है और परिणामों के लिए मिलान करने वाली क्वेरी पर एक साधारण जुड़ाव, और छँटाई से समाधान मिलता है।