Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql:तालिका ए से सभी वस्तुओं का चयन करें यदि तालिका बी में मौजूद नहीं है

आप जो करना चाहते हैं उसका प्रोटोटाइप यहां दिया गया है:

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'

यदि ऐसा नहीं होता है, तो आपने अपराधी को ढूंढ लिया है और उसके अनुसार अन्य भागों के साथ कार्य करें :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पायथन MySQL विशेष पात्रों से बचता है

  2. क्या MySQL क्लॉज द्वारा SELECT और HAVING/GROUP BY के बीच सामान्य उप-अभिव्यक्तियों को समाप्त करता है

  3. Laravel Group By Date

  4. मैसकल:चुनिंदा स्टेटमेंट के भीतर इनलाइन टेबल बनाएं?

  5. MySQL प्रदर्शन बेंचमार्किंग:MySQL 5.7 बनाम MySQL 8.0