同一张表里有两个字段关联同一个字典表,该如何查询?

时间:2022-09-29 15:06:59
比如我的记录表(JLB)这样:
XH      YJLX      SJLX
1         A         B
2         B         C
3         C         A
字典表(ZDB)
LXDM      LX
A         白菜
B         萝卜
C         冬瓜
希望查到的结果是
XH       YJLX      SJLX
1        白菜      萝卜
2        萝卜      冬瓜
3        冬瓜      白菜

现在我的写法是
select a.XH, b.LX ,(select b.LX from ZDB as b where b.LXDM=a.SJLX) as SJLX
from JLB as a left join ZDB as b on b.LXDM=a.YJLX
这种查询还有更好的写法吗?

6 个解决方案

#1


select * from jlb a 
left join zdb b on a.yjlx=b.lxdm
left join zdb c on a.sjlx=c.lxdm

#2


select a.XH, b.LX,c.LX 
from jlb a inner join zdb b on a.yjlx=b.lxdm
inner join zdb c on a.sjlx=c.lxdm

#3


或者直接

select a.XH, b.LX,c.LX 
from jlb a ,zdb b ,zdb c 
where a.yjlx=b.lxdm
and a.sjlx=c.lxdm

#4


光顾着结贴了,没看2,3L是同一人,只能让1L吃点亏了

#5


请问 1L 这个 
select * from jlb a  
left join zdb b on a.yjlx=b.lxdm
left join zdb c on a.sjlx=c.lxdm
a b c 分别代表什么?  谢谢  是字段里面的那个值吗?

#6


a,b,c就是表名的缩写,你写在哪个表的后面就是对谁的缩写,你可以自己试试

#1


select * from jlb a 
left join zdb b on a.yjlx=b.lxdm
left join zdb c on a.sjlx=c.lxdm

#2


select a.XH, b.LX,c.LX 
from jlb a inner join zdb b on a.yjlx=b.lxdm
inner join zdb c on a.sjlx=c.lxdm

#3


或者直接

select a.XH, b.LX,c.LX 
from jlb a ,zdb b ,zdb c 
where a.yjlx=b.lxdm
and a.sjlx=c.lxdm

#4


光顾着结贴了,没看2,3L是同一人,只能让1L吃点亏了

#5


请问 1L 这个 
select * from jlb a  
left join zdb b on a.yjlx=b.lxdm
left join zdb c on a.sjlx=c.lxdm
a b c 分别代表什么?  谢谢  是字段里面的那个值吗?

#6


a,b,c就是表名的缩写,你写在哪个表的后面就是对谁的缩写,你可以自己试试