Her er prototypen til det, du vil gøre:
SELECT * FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2 WHERE t1.id = t2.id)
Her, id
antages at være PK og FK i begge tabeller. Du bør justere i overensstemmelse hermed. Bemærk også, at det er vigtigt at sammenligne PK og FK i dette tilfælde.
Så her er, hvordan din forespørgsel skal se ud:
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')
)
Hvis du vil, tjekker du delene af din forespørgsel ved at udføre dem i mysql-klienten. For eksempel kan du sikre dig, om følgende returnerer nogen poster eller ej:
SELECT * FROM room_events
WHERE room_start BETWEEN '1294727400' AND '1294729200'
OR
room_finish BETWEEN '1294727400' AND '1294729200'
Hvis det ikke gør det, har du fundet den skyldige og handler derefter med andre dele :)