Использование запроса MySQL при выборе доступности номера

У меня была эта структура базы данных в резервации гостиницы с точки зрения доступности номера

ниже мой стол room

 room_num roomtype 101 Single 102 Single 103 Single 111 Deluxe 112 Deluxe 113 Deluxe 114 Deluxe 115 Deluxe 116 Deluxe 121 Superior 122 Superior 

и таблица ниже – room_booked которая представляет собой номера забронированных номеров

dor – дата регистрации, а dco – дата проверки

 room_num dor dco 111 2014-06-01 2014-06-06 112 2014-06-01 2014-06-06 113 2014-06-01 2014-06-06 114 2014-06-01 2014-06-06 115 2014-06-01 2014-06-06 116 2014-06-01 2014-06-06 112 2014-05-18 2014-05-21 113 2014-08-01 2014-08-04 

В этом случае все номера Делюкс забронированы с 2014-06-01 по 2014-06-06 . Затем я выбрал номер Делюкс, доступный с 2014-06-01 по 2014-06-06, используя этот код MySQL ниже

 SELECT room.room_num FROM room LEFT JOIN room_booked ON room_booked.room_num = room.room_num WHERE ( ( dor IS NULL AND dco IS NULL ) OR ( -- wished booking date is before DOR '2014-06-06' < dor -- OR wished booking date is after DCO OR '2014-06-01' >= dco ) ) -- room type AND roomtype = 'Deluxe' 

Однако он показывает номер Делюкс номер. 112 и 113, который забронирован до и после выбранного диапазона дат выше, а не 0 или полностью забронирован. Есть ли какое-либо решение для исправления этого кода?