当前位置: 代码迷 >> Sql Server >> 两表合成有关问题
  详细解决方案

两表合成有关问题

热度:15   发布时间:2016-04-27 11:15:25.0
两表合成问题
有两表:
TB1
code name
BS003 钟小姐
BS005 林先生
BS008 黄先生

TB2
code qu1 qu2
BS003 1.0 12.0
BS005 2.0 22.0

现想把两表合成得到如下表:
code name qu1 qu2
BS003 钟小姐 1.0 12.0
BS005 林先生 2.0 22.0
BS008 黄先生

我用select a.code,a.name,b.qu1,b.qu2 from tb1 a,tb2 b where a.code=b.code结果为空!
用select a.code,a.name,b.qu1,b.qu2 from tb1 a full join tb2 b on a.code=b.code结果为:
code name qu1 qu2
BS003 钟小姐  
BS005 林先生
BS008 黄先生

用select a.code,a.name,b.qu1,b.qu2 from tb1 a full join tb2 b on a.code=b.code结果为:
code name qu1 qu2
BS003 钟小姐  
BS005 林先生
BS008 黄先生
NULL NULL 1.0 12.0
NULL NULL 2.0 22.0

请教如何写?

------解决方案--------------------
SQL code
select a.code,a.name,isnull(b.qu1,'') qu1,isnull(b.qu2,'') qu2 from TB1 aleft join TB2 bon a.code=b.code
------解决方案--------------------
select *,b.qu1,b.qu2 from tb1 a left join tb2 b on a.code = b.code
------解决方案--------------------
SQL code
select a.code,a.name,b.qu1,b.qu2 from tb1 a full join--此处full join全连接换成左连接left join tb2 b on a.code=b.code
------解决方案--------------------
SQL code
select a.code,a.name,b.qu1,b.qu2 from tb1 a full join--此处full join全连接换成左连接left join tb2 b on a.code=b.code
------解决方案--------------------
事实上,这样的情况是因为tb1中的code不等于tb2中的code。
可能是空格,可能是字段类型。这样看数据库的规则设置了。
  相关解决方案