Ответы «НЕ В» верны. Альтернативой, которая может быть проще для некоторых сценариев, является оператор «НЕ СУЩЕСТВУЕТ»:
SELECT TEST FROM TEST1
WHERE NOT EXISTS
(SELECT null FROM TEST2 WHERE TEST2.TEST = TEST1.TEST);
(Примечание: здесь значение "null" в предложении select не имеет смысла)
Я лично использую оба метода, но мне часто нравится NOT EXISTS, потому что он более гибкий - для него не требуется, например, сравнение при условии равенства.
Последние версии оптимизатора часто преобразуют NOT IN в NOT EXISTS или наоборот; однако, если вы используете более старую версию (например, 8i или даже 9i), вы можете увидеть выигрыш в производительности от переключения между этими двумя методами.