• oracle递归层级查询 start with connect by prior


    递归层级查询:start with connect by prior 

    以部门表作为解析

    表结构:dept{id:'主键',name:'部门名称',parent_id:'父亲id'}

    select * from dept
    start with id=1 connect by prior id= parent_id
    order siblings by id

    分两部分理解:

    第一步找出一条数据作为基础:select * from dept start with id =?

    第二步prior放在左边还是右边是关键。

    查询子节点:prior id = parent_id。以id作为需要匹配对象找出parent_id相等的数据。以上面sql作为例子 1= parent_id找出满足这样条件的记录。

    查询父节点:id = prior parent_id。以parent_id作为需要匹配的对象,找出id等于parent_id的记录。

    最后:观察数据结果集层级是否正确。

  • 相关阅读:
    [模板] 文艺平衡树
    [模板]平衡树splay
    [ZJOI2015]诸神眷顾的幻想乡
    [HAOI2016]找相同字符
    SP8093 JZPGYZ
    SP1812 LCS2
    SP1811 LCS
    AHOI2013 差异
    TJOI2015 弦论
    工艺(SAM)
  • 原文地址:https://www.cnblogs.com/chenweichu/p/6513443.html
Copyright © 2020-2023  润新知