Извините за смутный предмет, но я не мог думать, что поставить.
Вот моя проблема, я делаю запрос к таблице, которая возвращает мне количество элементов, связанных с днем. Я хочу убедиться, что если я делаю запрос к БД, я всегда получаю заданное количество строк. Например, представьте, что у меня есть следующая таблица, в которой содержится журнал входа людей на веб-сайт:
**WebsiteLogin**
id: Integer
login_date: Datetime
Затем я могу получить количество логинов для каждой даты, выполнив что-то вроде:
SELECT DATE(login_date), COUNT(*) FROM WebsiteLogin GROUP BY DATE(login_date)
, который прекрасно работает и вернет мне данные, которые я хочу. Но представьте, мой сайт был довольно непопулярным по выходным. Возвращенные данные будут выглядеть так:
2008-12-10, 100
2008-12-11, 124
2008-12-12, 151
2008-12-15, 141
2008-12-16, 111
13-го и 14-го отсутствуют, потому что не было данных на эти даты. Можно ли как-нибудь изменить свой запрос, чтобы получить данные, содержащие все даты, по которым я запрашиваю. Э.Г.
2008-12-10, 100
2008-12-11, 124
2008-12-12, 151
2008-12-13, 0
2008-12-14, 0
2008-12-15, 141
2008-12-16, 111
Думаю, я мог бы сделать это, если бы я создал таблицу, содержащую все даты за год, а затем использовал объединение влево / вправо, но это действительно грязный способ сделать это.
Итак, есть ли какие-нибудь подсказки о том, как сделать это в SQL? Или программно это мой единственный выбор? Приветствия для любого входа.