Во-первых, более интуитивно понятный способ написания запроса будет использовать NOT EXISTS
:
SELECT Table1.ID, Table1.IP_Address, Table1.Field1
FROM Table1
WHERE NOT EXISTS (SELECT 1
FROM Table2
WHERE Table1.[IP_Address] = Table2.[IP Address]
);
Тем не менее, метод LEFT JOIN
вполне разумен - и разумен тоже.
LEFT JOIN
сохраняет все строки в первой таблице (Table1
) и соответствующие строки во второй.Если совпадений нет, то столбцы Table2
необходимо заполнить значением, а для несоответствий это значение равно NULL
.
Предложение WHERE
содержит только этиNULL
значения.Вуаля!Он сохраняет строки в Table1
, которые не имеют соответствующих значений в Table2
.