本文转载自   https://blog.csdn.net/BondChenJ/article/details/78581625

1、适用状况:blog

适用树状结构数据,例如包含id,parent_id字段的数据表 ,表中数据能够经过某些字段找到其中的父子关系。递归

2、语法:get

select  *  from  表名  start  with 条件1  connnect by 条件2  where  条件3it

一、举例:io

(1)经过父ID查询全部子节点select

select * from group_info  start with parent_group_id='0' connect by prior group_id=parent_group_id语法

(2)经过子ID查询全部父节点数据

select * from group_info start with group_id='61' connect by prior parent_group_id=group_id查询

二、说明:

(1)start with 后面的条件表示递归从哪里开始。

select *  from group_info  start with parent_group_id='0' connect by prior group_id=parent_group_id  从父编号为0的数据开始查

select *  from group_info  start with group_id='0' connect by prior group_id=parent_group_id 从编号为0的数据开始查

显然在须要查询父节点为0的全部子节点时,第二条查询语句会包含父节点。

(2)connect by 条件2  表示 递归时先后两条数据是以条件2来创建联系的

(3)prior的位置决定了递归时的具体关系或者说是决定了查询时的检索顺序。

prior 字段1=字段2   能够理解为当前节点的字段1等于下一个节点的字段2

select * from group_info start with group_id='5' connect by  parent_group_id= prior group_id

能够理解为 当前节点的group_id 是下一个节点的parent_group_id ,也就是查询 父节点下的全部子节点

(当前这条记录的group_id =下一条记录的parent_group_id )

select *  from group_info start with group_id='5' connect by   prior   parent_group_id= group_id

能够理解为当前节点的parent_group_id  是下一个节点的group_id ,也就是查询子节点的全部父节点

(4)level关键字表示层次

可经过level 关键字表示查询结果所在层次,根节点的层号为1

select g.* , level from group_info g start with parent_group_id=0 connect by prior group_id=parent_group_id

oracle 根据节点id递归查询全部的父节点(转载)的更多相关文章

  1. jQuery之防止冒泡事件,冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。

    冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 下面是html代码部分: <body> <div id="content"> 外层div元素 ...

  2. 编写一个方法,输入DOM节点,返回包含所有父节点的一个数组

    编写一个方法,输入DOM节点,返回包含所有父节点的一个数组 function getParentsNodes(element) { var parents = []; var getParentsNo ...

  3. LeetCode 二叉树,两个子节点的最近的公共父节点

    LeetCode 二叉树,两个子节点的最近的公共父节点 二叉树 Lowest Common Ancestor of a Binary Tree 二叉树的最近公共父亲节点 https://leetcod ...

  4. [extjs] ExtJS4 treepanel 子节点选中父节点自动选中,选中父节点 子节点自动全部选中

    ExtJS4 treepanel 主要添加viewConfig重的代码: xtype:'treepanel', store: menuStore, id:'menuTreePanel', viewCo ...

  5. MySQL递归查询树状表的子节点、父节点具体实现

    mysql版本(5.5.6等等)尚未支持循环递归查询,和sqlserver.oracle相比,mysql难于在树状表中层层遍历的子节点.本程序重点参考了下面的资料,写了两个sql存储过程,子节点查询算 ...

  6. 包含mysql 递归查询父节点 和子节点

    包含mysql 递归查询父节点 和子节点 mysql递归查询,查父集合,查子集合 查子集合 --drop FUNCTION `getChildList` CREATE FUNCTION `getChi ...

  7. JavaScript通过父节点ID递归生成JSON树

    JavaScript通过父节点ID递归生成JSON树: · 实现思路:通过递归实现(第一次递归的时候查询出所有的父节点,然后通过当前父节点id不断地去查询所有子节点,直到递归完毕返回)   · 代码示 ...

  8. Oracle 树操作、递归查询(select…start with…connect by…prior)

    一.Oracle中start with…connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是:select … from tablename start ...

  9. 你真的会玩SQL吗?查询指定节点及其所有父节点的方法

    --查询ID = '009'的所有父节点 ' ;WITH T AS ( SELECT ID , PID , NAME FROM TB WHERE ID = @ID UNION ALL SELECT A ...

  10. 基于EasyUi ComBotree树修改 父节点选择问题

    本人在使用 Easy UI 期间发现了一个不太适合项目的bug,可能也不算bug把 . 毕竟不同项目背景 取舍不同. 我在做网元树选择的时候  发现当选取父节点后,子节点都会被选择  返回  .但是如 ...

随机推荐

  1. 2024-2025, 四大翻译工具加AI翻译的深度对比

    前言 在过去两年中,人工智能技术的迅猛发展对翻译工具产生了深远的影响. 本期特意挑选了四款翻译工具以及一个AI翻译工具, 对其性能进行评测,看看在AI技术的加持下,它们的质量提升如何. 以下是参赛选手 ...

  2. php yaconf扩展

    在了解到PHP鸟哥还有这个扩展后,我安装尝试了一下 在这里有介绍 https://pecl.php.net/package/yaconf  这里有更详细的代码和说明 https://github.co ...

  3. APISIX配置

    APISIX yum install -y apisix-2.12.1-0.el7.x86_64.rpm yum install -y cyrus-sasl-devel-2.1.26-23.el7.x ...

  4. 从零开始学java(第一天)

    上班日学习时间很短,而且很多事情会耽搁,就会写的比较少 近几期的笔记以复习为主,后面会逐渐拓展对我个人来说的新知识 1. 复习了一下typore的语法,方便以后记笔记用 # MarkDown学习(# ...

  5. 文件上传漏洞&靶场通关详解

    文件上传漏洞&靶场通关详解 什么是文件上传漏洞? 大部分网站都拥有上传文件的部分,文件上传漏洞是由于网站开发者对用户上传文件的过滤不够严格,攻击者可以通过这些漏洞上传可执行文件(如木马,恶意脚 ...

  6. 使用 fiddler 进行抓包处理

    1.概述 fiddler是一个抓包工具,有时候方便我们在访问网页上,看看网页的参数和返回结果.其中很重要的一条是,可以查看网页的响应速度,在对于调优方面提供一些依据. 2.软件安装 我们可以通过360 ...

  7. Node.js 介绍和特点

    1.node.js是什么 node.js不是一门语言,而是一个开发平台,是一个基于 Chrome V8 引擎的 JavaScript 运行环境. 何为开发平台:有对应的语言和实现特定功能的api 2. ...

  8. uni-app小程序(抖音)text组件使用踩坑

    前情 uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验也挺棒的,公司项目就是主推uni-app. 坑位 最近在开发一 ...

  9. flutter安装过程中 flutter doctor 出现错误 cmdline-tools component is missing

    进入Android studio的settings添加tool工具

  10. Linux行号显示

    xshell显示行号: 输入命令: vim ~/.vimrc 输入: set nu 之后在打开文件 就可以 看到行号显示.