taba 表 id bid aid name
tabb 表 id name
现在 a表中的bid可能为空也可能是tabb表的一个主健id,aid是taba表的一个主健也可能为空,现在我要取出taba表的所有记录,当bid不为空的时候,我取bid对应的name,当aid不为空我取对应name,如下:
select a.id ,b.name,c.name a.name from taba a,tabb b,taba c where
a.bid=b.id and a.aid=c.id
但是这样只能把bid和aid不为空的记录提取出来,bid或aid为空,或者bid、aid都为空的记录就取不出来了;请大家给写一个;谢谢
------解决方案--------------------------------------------------------
select a.id,case when a.bid <> ' ' then b.name else a.name
end from taba as a left join tabb as b on a.bid=b.id
当aid不为空我取对应name---这句没明白
我现在写的是当bid不为空(我写的是 ' ',你可以改称is not null,我不知道你具体的要求)
显示tabb的name,否则显示taba的name