读书人

求:怎么查出两个表中不相同的记录

发布时间: 2012-02-16 21:30:36 作者: rapoo

求:如何查出两个表中不相同的记录?
例:
如:tableA
id name age
1 aa 22
2 bb 33
3 cc 42
4 dd 55
5 gg 32

tableB
id name age
1 aa 22
2 bb 33
3 cc 44
4 dd 55
5 ee 66
6 ff 77

希望查出结果:

tableA 的
3 cc 42
5 gg 32
tableB 的
5 ee 66
6 ff 77

十分感谢!!!!

[解决办法]
create table A(id int, name varchar(10), age int)
insert A select 1, 'aa ', 22
union all select 2, 'bb ', 33
union all select 3, 'cc ', 42
union all select 4, 'dd ', 55
union all select 5, 'gg ', 32

create table B(id int, name varchar(10), age int)
insert B select 1, 'aa ', 22


union all select 2, 'bb ', 33
union all select 3, 'cc ', 44
union all select 4, 'dd ', 55
union all select 5, 'ee ', 66
union all select 6, 'ff ' , 77

select * from A
where not exists(select 1 from B where A.id=B.id and A.name=B.name and A.age=B.age)

--result
/*
id name age
----------- ---------- -----------
3 cc 42
5 gg 32

(2 row(s) affected)
*/

select * from B
where not exists(select 1 from A where A.id=B.id and A.name=B.name and A.age=B.age)
--result
/*
id name age
----------- ---------- -----------
3 cc 44
5 ee 66
6 ff 77

(3 row(s) affected)
*/

读书人网 >SQL Server

热点推荐