求一条sql语句:表a多个字段与表b的一个字段关联,表A数据不全的时候也可以显示

时间:2021-02-16 02:58:08
表A:
id    name  piid    siid   oiid
1      网    12      13     14
2      里    10      12     15
3      红    15      11     12
4      瓦            10     11
5      过    10             
6      红            15

表B:
bid   bname
10     执行
11     不执行
12     退出
13     准确
14     排错
15     处理
16     通过

A表的piid、siid、oiid都关联B表的bid,通过查询将A表里面的piid、siid、oiid都显示为bname字段内容,这个可以通过建立多个B表来实现,但是如果A表里面的piid、siid、oiid有一个为空的话,A表的ID4、5、6就不会出现在查询里面,现在怎么解决这个问题,关联B表后让查询的A表内容都显示出来?

6 个解决方案

#1


sql语句可以实现就结贴。

#2


Select * From b left outer join a  on a.piid = b.id and a.siid= b.id and a.oiid = b.id

如果为空  就会显示null

#3


额  发错了  楼主的问题没看清

#4


select t1.id,t1.name,t2.bname,t3.bname,t4.bname
from a t1
inner join b t2 on t2.bid=t1.piid
inner join b t3 on t3.bid=t1.siid
inner join b t4 on t4.bid=t1.oiid

#5


a left outer b
楼主试试吧

#6


用一个外连接就可以了,我已经实现了,多谢了。

#1


sql语句可以实现就结贴。

#2


Select * From b left outer join a  on a.piid = b.id and a.siid= b.id and a.oiid = b.id

如果为空  就会显示null

#3


额  发错了  楼主的问题没看清

#4


select t1.id,t1.name,t2.bname,t3.bname,t4.bname
from a t1
inner join b t2 on t2.bid=t1.piid
inner join b t3 on t3.bid=t1.siid
inner join b t4 on t4.bid=t1.oiid

#5


a left outer b
楼主试试吧

#6


用一个外连接就可以了,我已经实现了,多谢了。