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
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 分别代表什么? 谢谢 是字段里面的那个值吗?
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
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 分别代表什么? 谢谢 是字段里面的那个值吗?
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就是表名的缩写,你写在哪个表的后面就是对谁的缩写,你可以自己试试