Динамическое связывание является единственным практическим способом удовлетворения некоторых лицензионных требований, таких как LGPL .
Выполните правое внешнее соединение с таблицей, назовите ее tblCalendar, которая предварительно заполнена датами, по которым вы хотите сообщить. И присоединяйтесь к полю даты.
Paul
Этот вопрос задает то же самое, что я думаю. Обычно принятый ответ выглядит так: вы либо делаете это в своей логике приложения (прочтите то, что у вас есть в массиве, затем перебираете массив и создаете недостающие даты), либо вы используете временные таблицы, заполненные датами, которые вы хотите присоединиться.
Если подумать, вам должно быть что-то вроде этого:
CREATE TEMPORARY TABLE DateSummary1 ( datenew timestamp ) SELECT DISTINCT(DATE(datecreated)) as datenew FROM users;
CREATE TEMPORARY TABLE DateSummary2 ( datenew timestamp, number int ) SELECT DATE(datecreated) as datenew, count(*) AS number FROM users
WHERE DATE(datecreated) > '2009-06-21' AND DATE(datecreated) <= DATE(NOW())
GROUP BY DATE(datecreated) ORDER BY datecreated ASC;
SELECT ds1.datenew,ds2.number FROM DateSummary1 ds1 LEFT JOIN DateSummary2 ds2 on ds1.datenew=ds2.datenew;
Это дает вам все даты в первой таблице и итоговые данные счетчика
в вторая таблица. Возможно, вам потребуется заменить ds2.number
на IF (ISNULL (ds2.number), 0, ds2.number)
или что-то подобное.