Här är prototypen för vad du vill göra:
SELECT * FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2 WHERE t1.id = t2.id)
Här, id
antas vara PK och FK i båda tabellerna. Du bör anpassa dig därefter. Observera också att det är viktigt att jämföra PK och FK i detta fall.
Så här är hur din fråga ska se ut:
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')
)
Om du vill kontrollerar du delarna av din fråga genom att köra dem i mysql-klienten. Du kan till exempel se till om följande returnerar några poster eller inte:
SELECT * FROM room_events
WHERE room_start BETWEEN '1294727400' AND '1294729200'
OR
room_finish BETWEEN '1294727400' AND '1294729200'
Om det inte gör det har du hittat den skyldige och agerar därefter med andra delar :)