日期:2014-05-19  浏览次数:20811 次

求一个查询语句,左右连接得到两个表中的数据
要求得到表中两个表中所有的数据,没有的就为空,或者为零。

数据:
tableA
a                 b              
001           34
002           54
003           26


tableB
a                 c
001           90
003           80
005           100

要求得到如下数据:
a               b             c
001         34             90
002         54             null
003         26             80
005         null         100

------解决方案--------------------
select isnull(a.a , b.a) a , a.b , b.c
from a full join b on a.a = b.a
------解决方案--------------------
select isnull(a1.a,b1.a),a1.b,b1.c from tableA a1 full outer join tableB b1
on a1.a=b1.a
------解决方案--------------------
select isnull(a.a,b.a),a.b,b.c from tbla a full join tblb b
on a.a=b.a

------解决方案--------------------

create table tableA(a char(3),b int)

insert into tableA
select '001 ',34 union all
select '002 ',54 union all
select '003 ',26

create table tableB(a char(3),c int)

insert into tableB
select '001 ',90 union all
select '003 ',80 union all
select '005 ',100

select isnull(a.a,b.a)as a,a.b,b.c from tableA a full join tableB b
on a.a=b.a

drop table tableA,tableB