исходного запроса:Создать временную таблицу заселенных с датами и LEFT JOIN в `created_at` Колонка - MySQL
// Doesn't return dates with zero value
SELECT UNIX_TIMESTAMP(created_at) AS DATE, COUNT(tweet_id) AS count
FROM `tweets`
WHERE DATE(created_at) > '2012-11-01'
AND DATE(created_at) <= DATE(NOW())
GROUP BY DATE
Измененный запрос:
// Attempting to return all dates with a value of zero if doesn't exist in `created_at` column
CREATE TEMPORARY TABLE DateSummary1 (date timestamp) SELECT DISTINCT(DATE(created_at)) as date FROM tweets;
CREATE TEMPORARY TABLE DateSummary2 (date timestamp, number int) SELECT DATE(created_at) as date, count(*) AS number FROM tweets WHERE DATE(created_at) > '2012-11-01' AND DATE(created_at) <= DATE(NOW()) GROUP BY DATE(created_at) ORDER BY created_at ASC;
SELECT ds1.date,ds2.number FROM DateSummary1 ds1 LEFT JOIN DateSummary2 ds2 on ds1.date=ds2.date;
К сожалению, последний результат не предоставляет мне на даты с нулевыми значениями, как я ожидал. Что я не замечаю? Я уверен, что это логическая ошибка, но я не уверен, где моя логика сработала. Я так далеко не читаю обильные потоки на SO, Google и т. Д., Но не уверен, как преодолеть это последнее препятствие.
Пример возвращенных меток времени, используя предложение jcho360 в:
1387286811
1387286812
1387286813
1387286815
1387286820
Я не совсем понятно, на что вы пытаетесь сделать. Что вы подразумеваете под датами с «значением нуля», как указано в комментариях? Почему вы имеете дело с отметками времени Unix? Почему вы работаете со временными таблицами? –