假设数据库中有表名table_1而table_1中有两列num1,num2。num1是num2的父亲节点。
1.自底向上查找父子关系:
select num1,num2,level
from table_1
start with num2=1008
connect by num2=prior num1 order by level desc;
解释:首先查询num2为1008的数据,然后通过本条数据的num1等于下条数据的num2来进行递归查询。
2.自顶向下查找父子关系
select num1,num2,level
from table_1
start with num2=1008
connect by prior num2= num1 order by level desc;
解释:首先查询num2为1008的数据,然后通过本条数据的num2等于下条数据的num1来进行递归查询。总结:
prior 放的位置决定了是自顶向下还是自底向上查询,即决定了是查找父亲节点还是查找孩子节点。prior 后面跟着的列代表的是本条记录中的列。level代表在树形结构中的等级。