Tak to robię. Tworzy zakres dat od 2011-01-01 do 31.12.2011 :
select
date_format(
adddate('2011-1-1', @num:[email protected]+1),
'%Y-%m-%d'
) date
from
any_table,
(select @num:=-1) num
limit
365
-- use limit 366 for leap years if you're putting this in production
Jedynym wymaganiem jest liczba wierszy w dowolnej_tabeli powinien być większy lub równy rozmiarowi potrzebnego zakresu (w tym przykładzie>=365 wierszy). Najprawdopodobniej użyjesz tego jako podzapytania całego zapytania, więc w Twoim przypadku any_tabela może być jedną z tabel używanych w tym zapytaniu.