#sql #sql-server
#sql #sql-сервер
Вопрос:
У меня есть две таблицы Table1 и Table2 с некоторыми записями
Как выбрать несопоставимые и отсутствующие записи столбца из двух таблиц в sql server
Таблица1
id name place
1 AAAA bangalore
2 BBBB IDLE
3 CCCC Chennai
4 DDDD NOT Reachable
Таблица 2
id name dept place
1 AAAA IT bangalore
2 BBBB Sales mumbai
3 CCCC Support Chennai
4 DDDD IT Delhi
5 MMMM Software Mumbai
Я хочу, чтобы результат был таким
id name
2 BBBB
4 DDDD
5 MMMM
я получил несопоставимые строки, используя ниже. как я могу получить непревзойденные и отсутствующие записи в одном запросе select?
select t2.name[place from table2]
from tab1 t1 inner join tab2 t2
on t1.id = t2.id and t1.place <> t2.place
Ответ №1:
Хммм … Если я правильно понимаю, вы хотите, чтобы все, table2
что не имеет соответствующего соответствия. table1
Для этого вы можете использовать not exists
:
select t2.*
from table2 t2
where not exists (select 1
from table1 t1
where t1.id = t2.id and t1.name = t2.name and
t1.place = t2.place
);