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 查询到的节点开始往下算起, 当前属于第几层级。

02-11 02:11