Hier is het prototype voor wat je wilt doen:
SELECT * FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2 WHERE t1.id = t2.id)
Hier, id
wordt in beide tabellen verondersteld de PK en FK te zijn. U moet dienovereenkomstig aanpassen. Merk ook op dat het in dit geval belangrijk is om PK en FK te vergelijken.
Dus, hier is hoe uw zoekopdracht eruit zou moeten zien:
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')
)
Als je wilt, controleer je de delen van je query door ze uit te voeren in de mysql-client. U kunt er bijvoorbeeld voor zorgen dat het volgende records retourneert of niet:
SELECT * FROM room_events
WHERE room_start BETWEEN '1294727400' AND '1294729200'
OR
room_finish BETWEEN '1294727400' AND '1294729200'
Als dit niet het geval is, heb je de boosdoener gevonden en handel je dienovereenkomstig met andere onderdelen :)