第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > mysql 父子关系查询 父子关系-SQL查询

mysql 父子关系查询 父子关系-SQL查询

时间:2021-08-21 12:45:34

相关推荐

mysql 父子关系查询 父子关系-SQL查询

假设只有4个级别,并且您总是希望从级别4开始,下面是查询

select L4.OSPID as L4OSPID, L4.OSPNAME as L4OPSNAME,

L4.RELATEDOSPID

as L3RELATEDID,

case

WHEN L3.OSPNAME = 'LEVEL3' THEN L3.OSPNAME

ELSE NULL

end as L3OSPNAME,

case

WHEN L3.OSPNAME = 'LEVEL3' THEN L3.RELATEDOSPID

ELSE NULL

end as L2RELATEDID,

case

WHEN L3.OSPNAME = 'LEVEL2' THEN L3.OSPNAME

WHEN L2.OSPNAME = 'LEVEL2' THEN L2.OSPNAME

ELSE NULL

end as L2OSPNAME,

case WHEN L3.OSPNAME = 'LEVEL2' THEN L3.RELATEDOSPID

WHEN L2.OSPNAME = 'LEVEL2' THEN L2.RELATEDOSPID

ELSE NULL

end

as L1RELATEDID,

case

WHEN L3.OSPNAME = 'LEVEL1' THEN L3.OSPNAME

WHEN L2.OSPNAME = 'LEVEL1' THEN L2.OSPNAME

WHEN L1.OSPNAME = 'LEVEL1' THEN L1.OSPNAME

ELSE NULL

end as L1OSPNAME,

case

WHEN L3.OSPNAME = 'LEVEL1' THEN L3.RELATEDOSPID

WHEN L2.OSPNAME = 'LEVEL1' THEN L2.RELATEDOSPID

WHEN L1.OSPNAME = 'LEVEL1' THEN L1.RELATEDOSPID

ELSE NULL

end as ROOTNODE

from osptable as L4

left outer join osptable as L3

on L4.RELATEDOSPID = L3.OSPID

left outer join osptable as L2

on L3.RELATEDOSPID = L2.OSPID

left outer join osptable as L1

on L2.RELATEDOSPID = L1.OSPID

where L4.OSPNAME = 'LEVEL4'

这给了我这个结果,我认为这是我想要的结果。

100004 LEVEL4 100003 LEVEL3 100002 LEVEL2 100001 LEVEL1 0

100009 LEVEL4 100008 NULL NULL LEVEL2 100007 NULL NULL

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。