Как заставить MYSQL показывать ноль результатов, если оставить присоединение к себе? (например: ежемесячная статистика) - PullRequest
1 голос
/ 26 апреля 2010

У меня есть таблица с типичной статистикой по просмотру страниц и по электронной почте. Электронная почта создает строку, а просмотр страницы создает строку ...

Я хочу составить график просмотров страниц и электронных писем на ежедневной основе за последние 30 дней (например), поэтому мне нужно показать день и значение ... даже если оно НОЛЬ. У меня не может быть пропущенных дней из моих результатов или из-за разрыва графика.

PageViews Table:
UniqueID | PageID | DateTime

Emails Table:
UniqueID | SenderEmail | RecipientID | RecipientEmail | DateTime

Мне не нужно, чтобы это был один запрос, но проблема остается той же для любого запроса ... Если есть дни (или часы, или месяцы .. в зависимости от группы по диапазону), где конкретной страницы не было просмотренная она просто опускается из массива результатов.

Точно так же, если бы были дни, когда были просмотры страниц, а теперь и электронные письма, то в запросе на счетчик адресов есть дыры ...

По сути, я пытаюсь создать диаграмму типов Google Analytics, и мне нужны строки для отображения НУЛЯ в те дни, когда в моих таблицах статистики нет данных ...

Я думаю, что какое-то соединение с самим собой может работать, но не может заставить его работать. Я даже возился с целочисленной таблицей только с одним столбцом (значениями) и строками для 1-31

Может ли кто-нибудь из вас помочь гуру MYSQL?

1 Ответ

0 голосов
/ 21 июня 2010

Стандартное решение этой проблемы - создать вспомогательную таблицу и заполнить ее всеми датами, соответствующими вашим ожидаемым запросам.

Вот соответствующие вопросы и ответы:

Как заполнить пробелы в дате в MySQL?

...