select * from test connect by prior id=PARENT_ID start with PARENT_ID=0 order siblings by id
问题是起始点不好找啊,起始点需要根据一个给定的CODE来查找
start with PARENT_ID=0 这句可以修改为这样 start with code=‘你指定的code’
是这样的,指定一个code,但是我要得到的是这个code所属的从根节点开始的完整的树。
select * from test connect by prior id=PARENT_ID start with code=‘code’ --楼主可以用这个connect by循环遍历树,这个prior id = parent_id就是父节点往子节点循环。
告诉怎么改都不行,还得把替换的结果写出来,这年头分真不好拿了 select * from test connect by prior id=PARENT_ID start with code='你指定的code' order siblings by id
可能我没有说清楚,如果start with code=‘指定的code’ 这样查询出的结果是指定code这个节点,及其所有子节点数据 但是我要的结果是包含指定code节点的一颗完整的树, 即还要向上找,找到code的父节点、父节点的父节点、直到找到根节点。 ID CODE PARENT_ID 1 a 0 2 a1 1 3 a2 1 4 a11 2 5 a12 2 6 a21 3举例:制定code为a2,要查找的结果为 ID CODE PARENT_ID 1 a 0 3 a2 1 6 a21 3
先反向构建树,查找根节点,在按树形查询 select * from test T connect by prior id=PARENT_ID start with PARENT_ID=0 and code in (select code from test connect by id=prior PARENT_ID start with code='你指定的code') order siblings by id
connect by prior id=PARENT_ID
start with PARENT_ID=0
order siblings by id
这句可以修改为这样
start with code=‘你指定的code’
connect by prior id=PARENT_ID
start with code=‘code’
--楼主可以用这个connect by循环遍历树,这个prior id = parent_id就是父节点往子节点循环。
select * from test
connect by prior id=PARENT_ID
start with code='你指定的code'
order siblings by id
这样查询出的结果是指定code这个节点,及其所有子节点数据
但是我要的结果是包含指定code节点的一颗完整的树,
即还要向上找,找到code的父节点、父节点的父节点、直到找到根节点。
ID CODE PARENT_ID
1 a 0
2 a1 1
3 a2 1
4 a11 2
5 a12 2
6 a21 3举例:制定code为a2,要查找的结果为
ID CODE PARENT_ID
1 a 0
3 a2 1
6 a21 3
select * from test T
connect by prior id=PARENT_ID
start with PARENT_ID=0
and code in (select code from test connect by id=prior PARENT_ID start with code='你指定的code')
order siblings by id