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 एसक्यूएल को लागू करने का प्रयास करता है