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

एक तालिका से सभी रिकॉर्ड कैसे चुनें जो किसी अन्य तालिका में मौजूद नहीं हैं?

SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL

प्रश्न :यहाँ क्या हो रहा है?

:संकल्पनात्मक रूप से, हम table1 . से सभी पंक्तियों का चयन करते हैं और प्रत्येक पंक्ति के लिए हम table2 . में एक पंक्ति खोजने का प्रयास करते हैं name . के लिए समान मान के साथ कॉलम। यदि ऐसी कोई पंक्ति नहीं है, तो हम केवल table2 . छोड़ देते हैं उस पंक्ति के लिए हमारे परिणाम का भाग खाली है। फिर हम परिणाम में केवल उन पंक्तियों को चुनकर हमारे चयन को बाधित करते हैं जहां मिलान पंक्ति मौजूद नहीं है। अंत में, हम name . को छोड़कर हमारे परिणाम के सभी क्षेत्रों को अनदेखा कर देते हैं कॉलम (वह जो हमें यकीन है कि मौजूद है, table1 . से )।

हालांकि यह सभी मामलों में सबसे अधिक प्रदर्शन करने वाला तरीका नहीं हो सकता है, इसे मूल रूप से हर डेटाबेस इंजन में काम करना चाहिए जो एएनएसआई 92 एसक्यूएल को लागू करने का प्रयास करता है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में किसी अन्य संग्रहीत कार्यविधि में संग्रहीत कार्यविधि निष्पादित करें

  2. मैं अपने SQL सर्वर डेटाबेस को कैसे छोटा करूं?

  3. एकाधिक स्तंभों पर अद्वितीय बाधा

  4. SQL सर्वर (T-SQL) से ईमेल कैसे भेजें

  5. SQL सर्वर (MSSQL DBA) शुरुआती डेटाबेस प्रशासकों के लिए डेटाबेस ट्यूटोरियल