两表合成问题
有两表:
TB1
codename
BS003钟小姐
BS005林先生
BS008黄先生
TB2
code qu1qu2
BS003 1.012.0
BS005 2.022.0
现想把两表合成得到如下表:
codename qu1qu2
BS003钟小姐 1.012.0
BS005林先生 2.022.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结果为:
codename qu1qu2
BS003钟小姐
BS005林先生
BS008黄先生
用select a.code,a.name,b.qu1,b.qu2 from tb1 a full join tb2 b on a.code=b.code结果为:
codename qu1qu2
BS003钟小姐
BS005林先生
BS008黄先生
NULLNULL 1.012.0
NULLNULL 2.022.0
请教如何写?
[解决办法]
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
[解决办法]
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
[解决办法]
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。
可能是空格,可能是字段类型。这样看数据库的规则设置了。