Помогите составить SQL запрос выборки диапазона между датами

Pavel6

Новичок
Помогите составить SQL запрос выборки диапазона между датами

Помогите составить SQL запрос.
Есть таблица Orders которая хранит дату начала и дату конца бронировки квартиры.

arrival_date departure_date
2008-01-26 2008-01-28
2008-02-18 2008-02-21
2008-01-24 2008-01-25


arrival_date- дата начало бронировки
departure_date – дата конца бронировки

Если взять первое поле, то мы видим что стоит бронь с 2008-01-26 по 2008-01-28

Запрос должен отобрать квартиры которые свободны с одной даты по другую.
Но тут есть проблема если дата 2008-01-27 для поиска попадает в диапазон между 2008-01-26 по 2008-01-28, тогда это так же бронь.

Я делал вот так, но выходит фигня.
Это запрос должен получить занятые квартиры, т.к. свободные не выходит одним запросом получить.
SELECT rooms.id
FROM orders_rooms
RIGHT JOIN rooms ON rooms.apartment_id = orders_rooms.apartment_id
WHERE orders_rooms.arrival_date <= ‘2008-01-27’
AND orders_rooms.departure_date >= ‘2008-01-27’
GROUP BY rooms.id

Получаю из него ID занятых квартир

И теперь вывожу свободные квартиры.
$sql = "select * from rooms where id NOT IN (".implode(",",$n_id).") limit 3";

Но это все применимо к одной дате, а мне нужно выбрать по двум датам, т.е. с 2008-01-27 по 2008-01-30 найти свободные квартиры, которые не попадают в диапазон между этими датами
 
Сверху