У меня два стола: номер и наличие. В наличии есть несколько заблокированных дат для каждой комнаты.
Я просто хочу показать доступные комнаты в заданном диапазоне. Моя инструкция SQL выглядит так:
SELECT id, name
FROM rooms
WHERE av_id NOT IN (
SELECT av_id
FROM availability
WHERE (? BETWEEN datetime_start AND datetime_end
OR ? BETWEEN datetime_start AND datetime_end)
)
? и ? - заданная дата для начала и в моем подготовленном операторе.
Проблема: это улавливает только случай, если начало или конец находятся между датами, а не перекрываются. Я уже час читаю другие посты, но не понял правильного логического подхода. Думаю, мне нужно добавить еще один пункт с> и <, но не знаю, как именно. </p>
Спасибо за любые подсказки для новичка!