Zde je prototyp toho, co chcete udělat:
SELECT * FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2 WHERE t1.id = t2.id)
Zde id
se předpokládá PK a FK v obou tabulkách. Měli byste se tomu přizpůsobit. Všimněte si také, že v tomto případě je důležité porovnat PK a FK.
Takže váš dotaz by měl vypadat následovně:
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')
)
Pokud chcete, můžete zkontrolovat části vašeho dotazu jejich spuštěním v mysql klientovi. Můžete se například ujistit, zda následující vrátí nějaké záznamy nebo ne:
SELECT * FROM room_events
WHERE room_start BETWEEN '1294727400' AND '1294729200'
OR
room_finish BETWEEN '1294727400' AND '1294729200'
Pokud ne, našli jste viníka a podle toho se chovejte s ostatními částmi :)