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

怎么查找两表之间ID不相同的数据

2012-01-31 
如何查找两表之间ID不相同的数据如何查找A表的ID在B表中没有和B表ID不在A表中的记录A表:ID数据11232343356

如何查找两表之间ID不相同的数据
如何查找A表的ID在B表中没有和B表ID不在A表中的记录

A表:                      
ID     数据
1         123
2         343
3         565
........

B表:
ID     数据
2         242
3         123
4         345
........

[解决办法]
drop table A,B
go

create table A(ID int,数据 varchar(10))
insert into A
select 1, '123 '
union all select 2, '343 '
union all select 3, '565 '

create table B(ID int,数据 varchar(10))
insert into B
select 2, '242 '
union all select 3, '123 '
union all select 4, '345 '

1.
select * from A
where not exists(select 1 from B where A.ID=B.ID)
/*
ID 数据
----------- ----------
1 123

(所影响的行数为 1 行)
*/

2.
select * from B
where not exists(select 1 from A where B.ID=A.ID)
/*
ID 数据
----------- ----------
4 345

(所影响的行数为 1 行)
*/
[解决办法]
declare @A table (
ID int,
数据 int
)

declare @B table (
ID int,
数据 int
)
insert @A select
1, 123
union all select
2, 343
union all select
3, 565

insert @B select
2, 242
union all select
3, 123
union all select
4, 345

select * from @a a full join @b b
on a.id=b.id
where a.id is null or b.id is null

--结果
ID 数据 ID 数据
----------- ----------- ----------- -----------
NULL NULL 4 345
1 123 NULL NULL

(所影响的行数为 2 行)

热点排行