Ответ 1
Вы можете создать автоматизированный набор результатов с использованием переменных 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, потому что для него это может быть почти что угодно. Над таблицей "Пользователи" (select @curDate: = '2012-11-21) sqlvars. Любой оператор select в запросе, который завернут в в скобках в качестве источника таблицы должен быть указан псевдоним, и поскольку это просто переменная, которую я буду использовать, мне все равно, как ее зовут. Таким образом, этот запрос запускает переменную в 21 ноября, а Select @curDate: = Date_Add... blah blah заявляет, что принимает текущее значение @curDate, добавляет 1 день к нему (теперь становится 22 ноября) и сохраняет его в возвращенной строке "MyJoinDate". Итак, теперь этот внутренний запрос создает вашу таблицу только даты, идущую с 22 ноября на 18 дней стоит данных и имеет псевдоним "AllDaysYouWant" для остальной части запроса для ссылки.
Я скорректировал запрос, который, вероятно, вы столкнулись, в alias.field все для уточнения...