Řekněme vaše první INNER JOIN vrátí 75 % z 1 000 000 řádků v table1 . Druhý dotaz nevrací 250 000 dalších řádků, jak si myslíte. Místo toho se pokusí vytvořit kartézský součin a odstranit 750 000 odpovídajících řádků. Snaží se tedy vrátit 6 000 000 × 1 000 000-750 000 řádků. To je vyboulená sada výsledků 6×10 řádků.
Pravděpodobně budete chtít toto:
SELECT * FROM table1
LEFT JOIN table2 ON table2.number = table1.number
WHERE table2.number IS NULL
To vrátí řádky v table1 není přítomen v table2 .
Také by vás mohlo zajímat 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
To vrátí řádky v obou tabulkách, které nemají shodu v druhé tabulce.