LEFT OUTER JOIN
का उपयोग करना भी संभव है उस के लिए। यह सबक्वेरी ओवरहेड से बच जाएगा (जब सिस्टम प्रत्येक . के लिए एक बार सबक्वेरी निष्पादित कर सकता है) बाहरी क्वेरी का रिकॉर्ड) जैसे जॉन वू के उत्तर में, और पहले से मौजूद 800 रिकॉर्ड जैसे कि user2340435 के एक में अनावश्यक काम करने से बचेंगे:
INSERT INTO b
SELECT a.* FROM a
LEFT OUTER JOIN b ON b.id = a.id
WHERE b.id IS NULL;
यह सबसे पहले A
. से सभी पंक्तियों का चयन करेगा और B
दोनों तालिकाओं के सभी स्तंभों सहित तालिकाएँ, लेकिन उन पंक्तियों के लिए जो A
. में मौजूद हैं और B
. में मौजूद नहीं है B
. के लिए सभी कॉलम तालिका NULL
होगी .फिर यह केवल ऐसी बाद की पंक्तियों को फ़िल्टर करता है (WHERE b.id IS NULL
), और अंत में यह इन सभी पंक्तियों को B
. में सम्मिलित करता है टेबल।