如何查找两表之间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 行)