Laten we zeggen je eerste INNER JOIN retourneert 75% van de 1.000.000 rijen in table1 . De tweede query retourneert niet de 250.000 andere rijen zoals u denkt. In plaats daarvan probeert het een Cartesiaans product te maken en de 750.000 overeenkomende rijen te verwijderen. Het probeert dus 6.000.000 × 1.000.000-750.000 rijen te retourneren. Dat is een uitpuilende resultatenset van 6×10 rijen.
Dit wil je waarschijnlijk:
SELECT * FROM table1
LEFT JOIN table2 ON table2.number = table1.number
WHERE table2.number IS NULL
Dit retourneert rijen in table1 niet aanwezig in table2 .
Mogelijk ben je ook geïnteresseerd in 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
Dit retourneert rijen in beide tabellen die niet overeenkomen met de andere tafel.