आप जो करना चाहते हैं उसका प्रोटोटाइप यहां दिया गया है:
SELECT * FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2 WHERE t1.id = t2.id)
यहां, id
दोनों तालिकाओं में पीके और एफके माना जाता है। आपको तदनुसार समायोजित करना चाहिए। यह भी ध्यान दें कि इस मामले में पीके और एफके की तुलना करना महत्वपूर्ण है।
तो, यहां बताया गया है कि आपकी क्वेरी कैसी दिखनी चाहिए:
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')
)
यदि आप चाहते हैं, तो आप अपनी क्वेरी के कुछ हिस्सों को mysql क्लाइंट में निष्पादित करके जांच सकते हैं। उदाहरण के लिए, आप सुनिश्चित कर सकते हैं कि निम्नलिखित कोई रिकॉर्ड देता है या नहीं:
SELECT * FROM room_events
WHERE room_start BETWEEN '1294727400' AND '1294729200'
OR
room_finish BETWEEN '1294727400' AND '1294729200'
यदि ऐसा नहीं होता है, तो आपने अपराधी को ढूंढ लिया है और उसके अनुसार अन्य भागों के साथ कार्य करें :)