请教左右外联的SQL
表a,b,c
a包含列id,tt
b包含列id,name,rr
c包含列name,qq
我可以生成一个这样的表吗?
a.id, a.tt, b.name, b.rr, c.qq
我想法是a左连(b左连c),但是不行
求教!!谢谢!!
------解决方案--------------------select a.id, a.tt, b.name, b.rr, c.qq
from b
left join a on b.id =a.id
left join c on c.name =b.name
没出来主要是数据问题。
------解决方案--------------------select a.id, a.tt, b.name, b.rr, c.qq
from a left join (b left join c on b.name=c.name) on a.id=b.id
其实直接按顺序写就可以
select a.id, a.tt, b.name, b.rr, c.qq
from a left join b on a.id=b.id left join c on b.name=c.name
因为如果b表不存在的数据,c表肯定也没有对应值,结果还是null
------解决方案--------------------
--莫非你是SQL Server2000???
select a.id,a.tt,t.name,t.rr,t.qq
from a
left join (select b.id,b.name,b.rr,c.qq from b left join c on b.name=c.name) t
on a.id=t.id