In a nutshell:
NOT IN
is a little bit different: it never matches if there is but a single NULL
in the list.
-
In
MySQL
,NOT EXISTS
is a little bit less efficient -
In
SQL Server
,LEFT JOIN / IS NULL
is less efficient -
In
PostgreSQL
,NOT IN
is less efficient -
In
Oracle
, all three methods are the same.