两个表结构如下:
a表
name zlname
------------------
中山 申报资料
东莞 记录资料
广州 ""
-------------------
b表
name bgname
-------------------
中山 表格资料
东莞 ""
广州 报到资料
惠州 ""
--------------------
现欲将上述两表合并成如下
name zlname bgname
---------------------------
中山 申报资料 表格资料
东莞 记录资料 ""
广州 "" 报到资料
惠州 "" ""
----------------------------
请问该如何书写SQL语句???
------解决方案--------------------
select a.name,zlname,bgname from a inner join b on a.name=b.name
------解决方案--------------------
- SQL code
create table tb1(name nvarchar(20),zlname nvarchar(60))insert into tb1 values(N'中山',N'申报资料')insert into tb1 values(N'东莞',N'记录资料')insert into tb1 values(N'广州',N'')create table tb2(name nvarchar(20),bgname nvarchar(60))insert into tb2 values(N'中山','表格资料')insert into tb2 values(N'东莞','')insert into tb2 values(N'广州','报到资料')insert into tb2 values(N'惠州','')select isnull(a.name,b.name) name,isnull(a.zlname,'') zlname,isnull(b.bgname,'') bgnamefrom tb1 a full join tb2 b on a.name=b.namedrop table tb1,tb2/*name zlname bgname -------------------- ------------------------ ------------------------ 中山 申报资料 表格资料东莞 记录资料 广州 报到资料惠州 (所影响的行数为 4 行)*/
------解决方案--------------------
- SQL code
/*create table # ([name] varchar(6),zlname varchar(12))INSERT INTO # VALUES ('中山','申报资料')INSERT INTO # VALUES ('东莞','记录资料')INSERT INTO # VALUES ('广州','')create table s ([name] varchar(6),bgname varchar(12))INSERT INTO s VALUES ('中山','表格资料')INSERT INTO s VALUES ('东莞','')INSERT INTO s VALUES ('广州','报到资料')INSERT INTO s VALUES ('惠州','')*//*name zlname bgname --------------------------- 中山 申报资料 表格资料 东莞 记录资料 " " 广州 " " 报到资料 惠州 " " " " */select s.name,zlname,bgname from # full join s on #.name=s.name