Да кажем първото ви INNER JOIN връща 75% от 1 000 000 реда в table1 . Втората заявка не връща 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
Това връща редове в двете таблици, които нямат съвпадение в другата таблица.