Możesz zbudować zautomatyzowany zestaw wyników przy użyciu zmiennych MySQL dla wszystkich żądanych dat.
select
AllDaysYouWant.MyJoinDate,
count(U.User_ID) as NumberJoined
from
(select
@curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate
from
(select @curDate := '2012-11-21') sqlvars,
Users
limit 18) AllDaysYouWant
LEFT JOIN Users U
on AllDaysYouWant.MyJoinDate = U.User_JoinDate
group by
AllDaysYouWant.MyJoinDate
Zapytanie wewnętrzna, ja właśnie dołączył do tabeli użytkowników bez klucza, więc jej tylko używany do cyklu przez X liczba zapisów do reprezentowania rozpiętość dnia chcesz ... Może to być 30, 100 , cokolwiek ... Tak długo jak stół (w tym przypadku użytkownicy), ma tyle rekordów, ile się spodziewasz.
THEN, ten wynik z niczego oprócz dni jest dołączany do tabeli użytkowników, ale tym razem w oparciu o JOIN_DATE użytkownika. Prosta funkcja COUNT() powinna dać ci to, czego chcesz.
W „AllDaysYouWant” jest alias przypisane do wewnętrznej części zapytania pierwszy
(select
@curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate
from
(select @curDate := '2012-11-21') sqlvars,
Users
limit 18) AllDaysYouWant
Zasadniczo stwierdza ... Z tabeli użytkowników (ale może być dowolny), daj mi 18 wierszy danych (przez limit, ale może to być prawie dowolna liczba rekordów, ale potrzebujesz tylko od 22 listopada do 6 grudnia, co jest tylko 14 dni, ale zrobiłem 18 tylko dla zasady może to być prawie wszystko. Powyżej tabeli Użytkownicy jest (wybierz @ curDate: = '2012-11-21') sqlvars. Każda instrukcja select w zapytaniu zapakowana w nawiasy jako źródło tabeli musi mieć nadany alias i ponieważ jest to tylko zmienna, której będę używał, nie obchodzi mnie to jaka jest jego nazwa. Tak więc to zapytanie rozpoczyna zmienną 21 listopada i Select @curDate: = Date_Add ... bla bla twierdzi, że bierze aktualną wartość @curDate, dodaje 1 dzień (teraz staje się 22 listopada) i przechowuje go w zwróconym wierszu "MyJoinDate". Tak więc teraz to wewnętrzne zapytanie tworzy twoją tabelę dat z datą 22 do 18 dni i ma alias "AllDaysYouWant" dla reszty zapytania do odniesienia.
Mam dostosowane zapytania, które było prawdopodobnie to, co napotkał, aby alias.field wszystko dla wyjaśnienia ...
Jako miejsce do rozpoczęcia Chciałbym utworzyć kwerendę, która daje wszystkich dat (I nie jestem pewien jak, ale jestem pewien, że tam jest), a następnie zrób z nim sprzężenie. – ajon