ITPub博客

首页 > 数据库 > Oracle > oracle 递归查询父子关系记录

oracle 递归查询父子关系记录

Oracle 作者:wms2051 时间:2014-01-13 18:33:04 0 删除 编辑

数据库中常要措置父子闭系的记录,在oracle中可以或许用查询语句一次把一切的子记录局部取出来。例以下:
t1
 t11
     t111
        t1111
 t12
     t121
        t1211
 
db数据字段以下:
task_id             task_name         t.parent_task_id       ***
***                     ***                          ***                               ***
000001            t1                         ***                                 ***
000002            t11                       000001                        ***
000005            t12                       000001                         ***
000003            t111                    000002                         ***
000004            t1111                  000003                         ***
000006            t121                    000005                         ***
000007            t1211                  000006                         ***
***                     ***                       ***                                 ***
查询语句:
select t.task_id ,t.task_name ,t.parent_task_id 
from t_task t 
start with task_id="000001"
connect by prior task_id = parent_task_id;
成绩显示:
task_id                 task_name          t.parent_task_id
000001                t1          
000002                t11                       000001
000003                t111                     000002
000004                t1111                    000003
000005                t12                       000001
000006                t121                     000005
000007                t1211                   000006

strat with 指定层次开初的前提,便是说谦意这个前提的止即可以或许做为层次树的最顶层
  
connect by prior指层之间的闭联前提,即什么样的止是上层止的子止(自毗连前提)
 
select level ,id,name,parentid from temptable2
  connect by prior parentid(属于顶层的列)=id(子层的列)  start with id =1

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7273948/viewspace-1116197/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论