Как вывести из таблицы только строки, которых нет в другой таблице?
Предположим, есть таблица t1:
id name
-- ----------
1 Владимир
2 Татьяна
3 Александр
4 Борис
И есть ее частичный дубликат t2:
id name
-- ----------
1 Владимир
2 Татьяна
Как вывести из таблицы t1 строки, которых нет в таблице t2?
Можно ли это сделать без подзапросов?
Ответы (2 шт):
Автор решения: 0xdb
→ Ссылка
Вот как звучит вопрос - вывести из таблицы t1 строки, которых нет в таблице t2, так и пишите (только по английски):
select t1.*
from t1
where not exists (
select 1
from t2
where t2.id = t1.id)
Доп. вопрос: Можно ли это сделать без подзапросов?. Можно, но вряд ли нужно, т.к. скорее никаких преимуществ это не даст:
select t1.*
from t1
left join t2 on t2.id = t1.id
where t2.id is null