日期:2014-05-18  浏览次数:20534 次

两个表连接的问题,两天了,恳请帮助
两个表结构如下:

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,'') bgname
from tb1 a full join tb2 b on a.name=b.name

drop 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