Lad os sige din første INNER JOIN
returnerer 75 % af de 1.000.000 rækker i table1
. Den anden forespørgsel returnerer ikke de 250.000 andre rækker, som du tror. I stedet forsøger den at skabe et kartesisk produkt og fjerne de 750.000 matchende rækker. Den forsøger således at returnere 6.000.000×1.000.000-750.000 rækker. Det er et svulmende resultatsæt på 6×10 rækker.
Du vil sandsynligvis have dette:
SELECT * FROM table1
LEFT JOIN table2 ON table2.number = table1.number
WHERE table2.number IS NULL
Dette returnerer rækker i table1
ikke til stede i table2
.
Du er måske også interesseret i 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
Dette returnerer rækker i begge tabeller, der ikke matcher den anden tabel.