MySQL i puste pola

0

Witam.
Jest możliwość w MySQL uzupełnić puste daty.
Mam zapytanie

SELECT COUNT(1) AS `Count`, DATE_FORMAT(`date`, '%Y-%m-%d') AS `Date` FROM `xv_articleindex` WHERE  `date` > NOW() - INTERVAL 31 DAY GROUP BY DATE_FORMAT(`date`,'%Y-%m-%d')  ORDER BY `date` ASC LIMIT 31

W wyniku dosaje

48	2010-12-28
7	2010-12-29
1	2010-12-31
7	2011-01-04
25	2011-01-07
122	2011-01-08
3	2011-01-11
14479	2011-01-13
1	2011-01-14
3	2011-01-16
37	2011-01-17
26	2011-01-18
25	2011-01-19
1	2011-01-26

Jak widać brakuje np 2011-01-15 , 2011-01-20 , 2011-01-21 ... itp.
Da się jakoś uzupełnić te pola? by było ich 31 - a jak nie ma danego dnia to COUNT(1) = 0? Czy muszę programowo obrobić te dane?

0

najprościej chyba to zrobić left joina z jakąś tabelą słownikową, zawierającą wszystkie dni roku. Oczywiście w warunku where filtrujesz zakres dat po tabeli słownikowej.

0

zdecydowanie polecam pomysł areksum, sam często używałem takiej dodatkowej tabeli tylko z datami
jest także pomocna do rozbijania przedziałów, tzn. jak w bazie masz rekordy z DataOd-DataDo

1 użytkowników online, w tym zalogowanych: 0, gości: 1