Можете да създадете автоматизиран набор от резултати, използвайки MySQL променливи за всички дати, които искате.
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
Вътрешната заявка, аз просто се присъединявам към таблицата с потребители без ключ, така че просто се използва за циклично преминаване през X брой записи, за да представи периода на деня, който искате... Това може да бъде 30, 100, каквото и да е... Просто докато таблицата (в този случай потребители), има толкова записи, колкото очаквате.
ТОГАВА, този резултат от нищо освен дни се присъединява към таблицата с потребители, но този път въз основа на JOIN_DATE на потребителя. Простият COUNT() трябва да ви даде това, което искате.
„AllDaysYouWant“ е псевдонимът, присвоен на вътрешната заявка за първа част на
( select
@curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate
from
( select @curDate := '2012-11-21' ) sqlvars,
Users
limit 18 ) AllDaysYouWant
Това основно гласи... От таблицата с потребители (но може да е всякаква), дайте ми 18 реда данни (чрез ограничение, но може да има почти произволен брой записи, но ви трябва само от 22 ноември до 6 декември, което е само 14 дни, но направих 18 само за принцип, може да е почти всичко. Над таблицата Users е (select @curDate :='2012-11-21' ) sqlvars. Всеки оператор select в рамките на заявка, който е опакован в скоби като източникът на таблицата трябва да получи псевдоним и тъй като това е просто променлива, която ще използвам, не ме интересува какво е името й. Така че тази заявка стартира променливата на 21 ноември и Select @curDate :=Date_Add... бла бла състояния, за да вземе текущата стойност на @curDate, добавете 1 ден към него (сега става 22 ноември) и го съхранявате в върнатия ред „MyJoinDate“. Така че сега тази вътрешна заявка създава вашата таблица само с дати, започващи от 22 ноември препраща данни на стойност 18 дни и има псевдоним „AllDaysYouWant“ за останалата част от заявката за справка.
Коригирах заявката, която вероятно беше това, което срещнахте, към alias.field всичко за изясняване...