Berikut adalah prototipe untuk apa yang ingin Anda lakukan:
SELECT * FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2 WHERE t1.id = t2.id)
Di sini, id
diasumsikan PK dan FK di kedua tabel. Anda harus menyesuaikannya. Perhatikan juga bahwa penting untuk membandingkan PK dan FK dalam kasus ini.
Jadi, beginilah tampilan kueri Anda:
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')
)
Jika mau, Anda memeriksa bagian kueri Anda dengan menjalankannya di klien mysql. Misalnya, Anda dapat memastikan apakah berikut ini mengembalikan catatan apa pun atau tidak:
SELECT * FROM room_events
WHERE room_start BETWEEN '1294727400' AND '1294729200'
OR
room_finish BETWEEN '1294727400' AND '1294729200'
Jika tidak, Anda telah menemukan pelakunya dan bertindak sesuai dengan bagian lain :)