SQL. Извлечение из одной таблицы значений, которых нет в другой таблице

Извлечение из одной таблицы значений, которых нет в другой таблице

-- 1 способ Oracle (minus)
select t.link from P_R_SERVER_NAME t
minus
select t2.link from P_R_SERVER_NAME_2 t2

-- 2 способ (not in)
select t.link from P_R_SERVER_NAME t
where t.link not in
(select t2.link from P_R_SERVER_NAME_2 t2)

-- Если в t2.link будет хоть один NULL то результат будет пустой
--поэтому лучше использовать not exists

-- 3 способ (not exists)
select t.link from P_R_SERVER_NAME t
where not exists
(select null from P_R_SERVER_NAME_2 t2 where t2.link=t.link)

Извлечение из таблицы строк, для которых нет соответствия в другой таблице

-- 1 способ (+)
select t.* from P_R_SERVER_NAME t, P_R_SERVER_NAME_2 t2
where t.link=t2.link(+)
and t2.link is null

-- 2 способ (join)
select t.*
from P_R_SERVER_NAME t left outer join P_R_SERVER_NAME_2 t2
on (t.link = t2.link)
where t2.link is null