oracle 根据节点id递归查询全部的父节点(转载)
本文转载自 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递归查询全部的父节点(转载)的更多相关文章
- jQuery之防止冒泡事件,冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。
冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 下面是html代码部分: <body> <div id="content"> 外层div元素 ...
- 编写一个方法,输入DOM节点,返回包含所有父节点的一个数组
编写一个方法,输入DOM节点,返回包含所有父节点的一个数组 function getParentsNodes(element) { var parents = []; var getParentsNo ...
- LeetCode 二叉树,两个子节点的最近的公共父节点
LeetCode 二叉树,两个子节点的最近的公共父节点 二叉树 Lowest Common Ancestor of a Binary Tree 二叉树的最近公共父亲节点 https://leetcod ...
- [extjs] ExtJS4 treepanel 子节点选中父节点自动选中,选中父节点 子节点自动全部选中
ExtJS4 treepanel 主要添加viewConfig重的代码: xtype:'treepanel', store: menuStore, id:'menuTreePanel', viewCo ...
- MySQL递归查询树状表的子节点、父节点具体实现
mysql版本(5.5.6等等)尚未支持循环递归查询,和sqlserver.oracle相比,mysql难于在树状表中层层遍历的子节点.本程序重点参考了下面的资料,写了两个sql存储过程,子节点查询算 ...
- 包含mysql 递归查询父节点 和子节点
包含mysql 递归查询父节点 和子节点 mysql递归查询,查父集合,查子集合 查子集合 --drop FUNCTION `getChildList` CREATE FUNCTION `getChi ...
- JavaScript通过父节点ID递归生成JSON树
JavaScript通过父节点ID递归生成JSON树: · 实现思路:通过递归实现(第一次递归的时候查询出所有的父节点,然后通过当前父节点id不断地去查询所有子节点,直到递归完毕返回) · 代码示 ...
- Oracle 树操作、递归查询(select…start with…connect by…prior)
一.Oracle中start with…connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是:select … from tablename start ...
- 你真的会玩SQL吗?查询指定节点及其所有父节点的方法
--查询ID = '009'的所有父节点 ' ;WITH T AS ( SELECT ID , PID , NAME FROM TB WHERE ID = @ID UNION ALL SELECT A ...
- 基于EasyUi ComBotree树修改 父节点选择问题
本人在使用 Easy UI 期间发现了一个不太适合项目的bug,可能也不算bug把 . 毕竟不同项目背景 取舍不同. 我在做网元树选择的时候 发现当选取父节点后,子节点都会被选择 返回 .但是如 ...
随机推荐
- atcoder ABC237-E Skiing
atcoder ABC237-E Skiing 传送门 这题把一个点到另外一个点的开心值变为这条边的权值,就可以化为求最大路.因为有负边权,所以要用\(SPFA\),但\(SPFA\)这玄学的时间复杂 ...
- Codeforces Round 732 (Div
AquaMoon and Strange Sort 有 \(n\) 个人从左到右站成一排,从左数第 \(i\) 个人的衣服上印着 \(a_i\).每个人的朝向可以是朝左.朝右.一开始所有人的方向都是朝 ...
- manim边做边学--曲面
Surface类是Manim中专为创建和操控复杂的三维表面而打造的. 在实际应用中,无论是创建数学教学中的几何模型,还是模拟物理现象中的曲面变化,甚至是构建复杂的动画场景中的三维元素,Surface类 ...
- Echarts 基本使用
1.Echarts简介 ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求. ECharts 包含了以下特性: (1)丰富的可视化类型: 常规的折线图. ...
- 谈谈Python中的接口与抽象基类
接触Python比较早的朋友可能都有这样的体会,Python语言虽然也支持面向对象的编程方式, 但是,不像那些纯面向对象的语言(比如Java和.NET)那样严格和规范. 随着项目的规模逐步扩大之后,想 ...
- 数据湖加速器GooseFS,加速湖上数据分析性能
数据湖加速器 GooseFS 是由腾讯云推出的高性能.高可用.弹性的分布式缓存方案.依靠对象存储(Cloud Object Storage,COS)作为数据湖存储底座的成本优势,为数据湖生态中的计算应 ...
- Qt/C++编写监控实时显示和取流回放工具(回放支持切换进度)
一.前言 现在各个监控大厂做的设备,基本上都会支持通过rtsp直接取流显示,而且做的比较好的还支持通过rtsp回放取流,基本上都会约定一个字符串的规则,每个厂家都是不一样的规则,比如回放对应的rtsp ...
- Qt音视频开发43-采集屏幕桌面并推流(支持分辨率/矩形区域/帧率等设置/实时性极高)
一.前言 采集电脑屏幕桌面并推流一般是用来做共享桌面.远程协助.投屏之类的应用,最简单入门的做法可能会采用开个定时器或者线程抓图,将整个屏幕截图下来,然后将图片传出去,这种方式很简单但是性能要低不少, ...
- Net6之Jwt认证+Bearer认证 2.0
以前接触过,写过博客,第二次再写有了新的体会.第一次博客:https://www.cnblogs.com/zhang-3/p/16184067.html 过程: 生成token令牌(钥匙) 添加bea ...
- Vetur can't find `tsconfig.json` or `jsconfig.json` in XXX
vue界面启动项目 visual code报错 如下图,找到 Ignore Project Warning 前边打上对勾