आपको मौजूद नहीं का उपयोग करना चाहिए:
SELECT DISTINCT a, b, c FROM t1 WHERE NOT EXISTS (SELECT NULL FROM t2 WHERE t1.a = t2.a AND t1.b = t2.b AND t1.c = t2.c)
ऐसा करने के लिए NOT IN का उपयोग करना सबसे अच्छा तरीका नहीं है, भले ही आप केवल एक कुंजी की जांच करें। इसका कारण यह है कि यदि आप NOT EXISTS का उपयोग करते हैं तो DBMS को केवल सूचकांकों की जाँच करनी होगी यदि आवश्यक कॉलम के लिए सूचकांक मौजूद हैं, जहाँ NOT IN के लिए वास्तविक डेटा को पढ़ना होगा और एक पूर्ण परिणाम सेट बनाना होगा जिसे बाद में जाँचने की आवश्यकता है। ।
बाएं जॉइन का उपयोग करना और फिर न्यूल की जांच करना भी एक बुरा विचार है, जब टेबल बड़े होते हैं तो यह दर्दनाक रूप से धीमा हो जाएगा क्योंकि क्वेरी को पूरी तरह से जुड़ने की जरूरत है, दोनों टेबल को पूरी तरह से पढ़ना और बाद में इसे बहुत दूर फेंक देना। साथ ही, यदि कॉलम NULL मानों की अनुमति देते हैं, तो NULL के लिए जाँच करने पर झूठी सकारात्मक रिपोर्ट मिलेगी।