我想选择并获取具有相同列名的两个表的所有不匹配值但是Id,Name和City是不同的。我正在使用Sql Server Management Studio
表A:
id Name City
1 John karachi
2 smith Capetown
3 liza Washington
表B:
id Name City
7 Grey Dubai
8 Clarke Texas
9 liza Washington
输出:
7 Grey Dubai
8 Clarke Texas
答案 0 :(得分:1)
已经回答了数百次。不太确定你的意思是“拥有相同的列名,但Id,Name和City是不同的”,但这里有几个例子说明你可以做到这一点。
您可以使用tablea为null的左连接,
select b.Name
, b.City
from tableb b
left join tablea a on a.name = b.name
and a.city = b.city
where a.name is null
你可以使用except。
select Name
, City
from tableb
except
select Name
, City
from tablea
答案 1 :(得分:0)
您可以尝试以下查询。假设id
列永远不会null
select tb.*
from tableB tb
left join tableA ta
on tb.Name=ta.Name and tb.City=ta.City
where ta.id is NULL
链接到demo sql fiddle:http://sqlfiddle.com/#!3/250e5/1