MySql - набор данных с метками времени (timestamp, event), рассчитывающих события за день - PullRequest
0 голосов
/ 13 мая 2010

У меня есть таблица: id, datetime, событие

У меня также есть таблицы дат: дата (формат Y-m-d)

проблема в том, что в некоторые дни нет событий, я бы хотел, чтобы они показывали 0 (или ноль)

SELECT DATE_FORMAT(table.timestamp, '%Y-%m-%d') ydm, count(table.fkUID) FROM `table`  where table.fkUID=$var group by ydm;

есть ли способ присоединиться или использовать условные операторы для отображения результата:

date|count
----------
2010-05-23| 5
2010-05-24| 0  <--- this line just doesn't exist in my query.
2010-05-26| 3

Ответы [ 2 ]

2 голосов
/ 13 мая 2010
select d.date,count(e.timestamp)
from dates d
left join events e on d.date=DATE_FORMAT(e.timestamp,'%Y-%m-%d')
group by d.date;

У меня нет среды для тестирования, и я не уверен, что мне ясно этот вопрос, но вот мое предположение.

0 голосов
/ 13 мая 2010

Принято считать, что вам нужно создать таблицу, содержащую список всех интересующих вас дат, а затем выполнить внешнее объединение с представлением, которое у вас есть. Отстой, я знаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...