select a.id,a.name,b.code from 表一 a full join 表二 b on a.id=b.id
select id,name=max(name),code=max(code) from( select id,name,code='' from 表一 union all select id,name='',code from 表二 )a group by id
select a.id,a.name,b.code from 表一 a full join 表二 b on a.id=b.id
--或: select id=isnull(a.id,b.id),name=isnull(a.name,''),code=isnull(b.code,'') from 表一 a full join 表二 b on a.id=b.id
--测试--测试数据 create table 表一(id int,name varchar(10)) insert 表一 select 1,'a' union all select 2,'b'create table 表二(id int,code varchar(10)) insert 表二 select 1,'ss' union all select 3,'dd' go--方法1 select id,name=max(name),code=max(code) from( select id,name,code='' from 表一 union all select id,name='',code from 表二 )a group by id--方法2 select id=isnull(a.id,b.id),name=isnull(a.name,''),code=isnull(b.code,'') from 表一 a full join 表二 b on a.id=b.id order by id go--删除测试 drop table 表一,表二/*--测试结果id name code ----------- ---------- ---------- 1 a ss 2 b 3 dd(所影响的行数为 3 行)id name code ----------- ---------- ---------- 1 a ss 2 b 3 dd(所影响的行数为 3 行) --*/
from 表一 a
full join 表二 b
on a.id=b.id
from(
select id,name,code='' from 表一
union all
select id,name='',code from 表二
)a group by id
from 表一 a
full join 表二 b
on a.id=b.id
select id=isnull(a.id,b.id),name=isnull(a.name,''),code=isnull(b.code,'')
from 表一 a full join 表二 b on a.id=b.id
create table 表一(id int,name varchar(10))
insert 表一 select 1,'a'
union all select 2,'b'create table 表二(id int,code varchar(10))
insert 表二 select 1,'ss'
union all select 3,'dd'
go--方法1
select id,name=max(name),code=max(code)
from(
select id,name,code='' from 表一
union all
select id,name='',code from 表二
)a group by id--方法2
select id=isnull(a.id,b.id),name=isnull(a.name,''),code=isnull(b.code,'')
from 表一 a full join 表二 b on a.id=b.id
order by id
go--删除测试
drop table 表一,表二/*--测试结果id name code
----------- ---------- ----------
1 a ss
2 b
3 dd(所影响的行数为 3 行)id name code
----------- ---------- ----------
1 a ss
2 b
3 dd(所影响的行数为 3 行)
--*/