Итак, скажем, у меня есть несколько записей, которые выглядят так:
2011-01-01 Cat
2011-01-02 Dog
2011-01-04 Horse
2011-01-06 Lion
Как я могу построить запрос, который вернет 2011-01-03 и 2011-01-05, то есть неиспользованные даты. Я отношу блоги к будущему, и мне нужен запрос, который покажет мне дни, когда я еще ничего не публиковал. Это будет выглядеть от текущей даты до 2 недель в будущем.
Обновление:
Я не слишком взволнован созданием постоянной таблицы дат. Подумав об этом, кажется, что решением может быть создание небольшой хранимой процедуры, которая создает временную таблицу. Что-то вроде:
CREATE PROCEDURE MISSING_DATES()
BEGIN
CREATE TABLE TEMPORARY DATES (FUTURE DATETIME NULL)
INSERT INTO DATES (FUTURE) VALUES (CURDATE())
INSERT INTO DATES (FUTURE) VALUES (ADDDATE(CURDATE(), INTERVAL 1 DAY))
...
INSERT INTO DATES (FUTURE) VALUES (ADDDATE(CURDATE(), INTERVAL 14 DAY))
SELECT FUTURE FROM DATES WHERE FUTURE NOT IN (SELECT POSTDATE FROM POSTS)
DROP TABLE TEMPORARY DATES
END
Я думаю, просто невозможно выбрать отсутствие данных.