Start With (树查询)
这个子句主要是用于树结构类型的数据递归查询,给出树结构类型中的任意一个结点,遍历其父结点或者子结点。
1、树结构:
2、表结构:
3、要求给出其中一个结点值,求其父结点。以7为例:
SELECT
a.parentid,
a.subid,
level,
FROM
表名 a
Start With a.subid = '7'
Connect By subid = Prior parentid;
结果:3,1
4、要求给出其中一个结点值,求其子结点。以7为例:
SELECT
a.parentid,
a.subid,
level
FROM
表名 a
Start With a.subid = '7'
Connect By Prior subid = parentid;
结果:10,12,13,11
5、注解:
start with 子句:遍历起始条件。
connect by 子句:连接条件。关键词prior,prior跟父节点列parentid放在一起,就是往父结点方向遍历;prior跟子结点列subid放在一起,则往子结点方向遍历,
parentid、subid两列谁放在“=”前都无所谓,关键是prior跟谁在一起。
level :表示当前节点所处层级, 这里的层级指的是 从 start with 查询到的节点开始往下算起, 当前属于第几层级。