首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-02-16 
求:如何查出两个表中不相同的记录?例:如:tableAidnameage1aa222bb333cc424dd555gg32tableBidnameage1aa222

求:如何查出两个表中不相同的记录?
例:
如: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)
*/

热点排行