Mysql - пересечение интервалов
Есть объект, которому сопоставлен интервал дат. Например, квартира, которая сдаётся в аренду.
Нужно написать такой запрос, который по переданному интервалу смотрел бы, есть ли в таблице объект, интервал которого не пересекается с переданным (границы не включаются в интервал).
Пример:
Квартира сдается с 5 мая по 9 мая - это событие есть в таблице
Я хочу добавить новую бронь, например с 11 до 15 мая.
Запрос смотрит в таблицу и видит, что совпадений по дате нет, и выдает эту квартиру.
Причем если новая бронь с 1 по 5 мая, до запрос тоже должен вывести эту квартиру. С 9 мая аналогично.
Статья на хабре и пресловутая формула
WHERE `start` < @end AND `end` > @start
, не работает.
Структура таблицы событий
id int(11) AI PK
flats_id int(11)
reservation_time_start timestamp
reservation_time_end timestamp
Источник: Stack Overflow на русском