Вы должны использовать не существует:
SELECT DISTINCT a, b, c FROM t1 WHERE NOT EXISTS (SELECT NULL FROM t2 WHERE t1.a = t2.a AND t1.b = t2.b AND t1.c = t2.c)
Использование NOT IN - не лучший способ сделать это, даже если вы проверите только один ключ. Причина в том, что если вы используете NOT EXISTS, СУБД должна будет проверять индексы, только если индексы существуют для нужных столбцов, тогда как для NOT IN она должна будет считывать фактические данные и создавать полный набор результатов, который впоследствии необходимо проверить. .
Использование LEFT JOIN с последующей проверкой NULL также является плохой идеей, так как большие таблицы будут мучительно медленными, поскольку в запросе необходимо выполнить полное соединение, полностью прочитав обе таблицы и впоследствии отбросив большую их часть. , Кроме того, если столбцы допускают значения NULL, проверка на NULL сообщит о ложных срабатываниях.