Oto prototyp tego, co chcesz zrobić:
SELECT * FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2 WHERE t1.id = t2.id)
Tutaj, id
przyjmuje się, że w obu tabelach są to PK i FK. Powinieneś odpowiednio dostosować. Zauważ również, że w tym przypadku ważne jest porównanie PK i FK.
Oto jak powinno wyglądać Twoje zapytanie:
SELECT id, room_name FROM rooms r
WHERE NOT EXISTS
(SELECT * FROM room_events re
WHERE
r.room_id = re.room_id
AND
(
room_start BETWEEN '1294727400' AND '1294729200'
OR
room_finish BETWEEN '1294727400' AND '1294729200')
)
Jeśli chcesz, możesz sprawdzić części zapytania, wykonując je w kliencie mysql. Na przykład możesz upewnić się, czy poniższe elementy zwrócą jakiekolwiek rekordy, czy nie:
SELECT * FROM room_events
WHERE room_start BETWEEN '1294727400' AND '1294729200'
OR
room_finish BETWEEN '1294727400' AND '1294729200'
Jeśli tak się nie stanie, znalazłeś winowajcę i postępuj zgodnie z innymi częściami :)