यह मुझे लगता है कि आप एक SQL क्वेरी में समान कार्य नहीं कर सकते हैं, न ही IN में, न ही लेफ्टिनेंट जॉइन कर सकते हैं। उदाहरण के लिए:
SELECT a FROM table1 WHERE a NOT IN (SELECT a FROM table2)
SELECT a FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 WHERE table1.a = table2.a)
SELECT a FROM table1 LEFT JOIN table2 ON table1.a = table2.a WHERE table1.a IS NULL
मुझे यकीन नहीं है कि मुझे सभी वाक्यविन्यास सही मिले, लेकिन ये सामान्य तकनीकें हैं जिन्हें मैंने देखा है। मैं एक का उपयोग दूसरे के लिए क्यों करना चाहूंगा? क्या प्रदर्शन अलग है ...? इनमें से कौन सा सबसे तेज / सबसे कुशल है? (यदि यह कार्यान्वयन पर निर्भर करता है, तो मैं हर एक का उपयोग कब करूंगा?)
EXISTSक्लॉज़ के अंदर क्या कर रहे हैं । आप वापस आ सकते हैं *, NULLया जो भी: यह सब दूर अनुकूलित किया जाएगा।
SELECTऔर के बीच रखने की मांग करता है FROM। और *टाइप करना आसान है। हां, SQLएक प्राकृतिक भाषा से मिलता जुलता है, लेकिन इसे एक मशीन, एक प्रोग्राम्ड मशीन द्वारा पार्स और निष्पादित किया जाता है। ऐसा नहीं है कि यह कभी भी आपके क्यूबिकल में टूट जाएगा और चिल्लाएगा "एक EXISTSक्वेरी में अतिरिक्त फ़ील्ड्स की मांग करना बंद कर दें क्योंकि मैं एफ ** जी उन्हें पार्स करने और फिर उन्हें फेंकने से बीमार हूं!"। यह कंप्यूटर के साथ ठीक है, वास्तव में।