मान लें कि आपका पहला INNER JOIN
. है table1
. में 1,000,000 पंक्तियों में से 75% लौटाता है . दूसरी क्वेरी आपके विचार से 250,000 अन्य पंक्तियों को वापस नहीं करती है। इसके बजाय, यह कार्टेशियन उत्पाद बनाने और 750, 000 मिलान पंक्तियों को हटाने का प्रयास करता है। इस प्रकार यह 6,000,000×1,000,000-750,000 पंक्तियों को वापस करने का प्रयास कर रहा है। यह एक उभड़ा हुआ 6×10 पंक्ति परिणाम सेट है।
आप शायद यही चाहते हैं:
SELECT * FROM table1
LEFT JOIN table2 ON table2.number = table1.number
WHERE table2.number IS NULL
यह table1
. में पंक्तियां लौटाता है table2
. में मौजूद नहीं है ।
आपको FULL OUTER JOIN
में भी रुचि हो सकती है :
SELECT * FROM table1
FULL OUTER JOIN table2 ON table2.number = table1.number
WHERE table1.number IS NULL AND table2.number IS NULL
यह उन दोनों तालिकाओं में पंक्तियाँ लौटाता है जिनका दूसरी तालिका पर कोई मिलान नहीं है।