基本语法:
select ... from tablename start with 条件1
connect by 条件2
where 条件3;
例:
-- 查询出节点 'si' 的父节点,以及父节点的父节点,直到根。
select * from tableName
start with child = 'si'
connect by prior father = child;
解释:
将一个树状结构存储在一张表里,表中存在两个字段: child,parent
按字面意思来,每条记录中的parent为child的父节点,这样就可以形成一个树状结构。
用上述语法的查询可以取得这棵树的所有记录。
条件1 是结点的限定语句,上例子中是叶子节点限定语句。
条件2 是连接条件,上例子中意思是:(prior)前一条记录中的father节点作为下一条记录的child节点
条件3 不解释
猜想执行过程:
-- 初始化
declare nodeId ...
set nodeId = 'si'
-- 查询
select * from tableName
where child = nodeId
-- 赋值
set nodeId = (select father from tableName where child = nodeId)
-- Jump to 查询
中间结果:
child father
si si0
child father
si si0
si0 si1
分享到:
相关推荐
java实现树父节点递归获取树子节点 工具类,以后再项目中直接用即可
根据当前节点获取所有父节点信息(18代)SQL根据当前节点递归遍历获取所有父节点信息,短短的SQL可以解决复杂的问题
本文通过实例给大家介绍了sql server递归子节点、父节点sql查询表结构的实例解析,非常不错,具有参考借鉴价值,需要的的朋友参考下
Java递归实现树查询,方法工具类可以直接引用,根据父节点可以获取本节点及其所有子节点数据(或获取到其下所有子节点数据)
SQL sever 中递归查找子节点和父节点,有实例SQL代码,直接运行
主要给大家介绍了关于Oracle如何通过递归查询父子兄弟节点的相关资料,递归查询对各位程序员来说应该都不陌生,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
//JS实现treeview中选中父节点,子节点也选中,如果子节点全部选中,自动选中父节点 //仅支持TreeView //调用方法 TreeView.Attributes.Add("onclick", "OnTreeNodeChecked()");
在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度, 那么所有节点为根的树的深度均不会超过树的最大深度,则我们可以直接通过left join来实现。 但很多时候我们是无法控制或者是知道树的深度的...
文章主要知识点: Oracle 递归查询, start with connect by prior 用法 find_in_set 函数 concat,concat_ws,group_...第一种情况: start with 子节点id = ' 查询节点 ' connect by prior 子节点id = 父节点id
本程序重点参考了下面的资料,写了两个sql存储过程,子节点查询算是照搬了,父节点查询是逆思维弄的。 表结构和表数据就不公示了,查询的表user_role,主键是id,每条记录有parentid字段(对应该记录的父节点,当然...
使用存储过程删除数据库表中具有父子关系的数据,删除父节点,则将其父节点以及子节点删除,使用数据库广度遍历
最近做了一个类似用js实现思维导图的功能,作为思维导图,一定会有树状结构的数据产生,在操作里面的节点时会经常需要查找节点 的父节点及父节点。 对于未知层级的树状数据,用for循环是无法实现的,因为不知道要...
我们在实际的开发当中经常要获取页面中某个html元素,动态的更新该元素的样式、内容属性等。 那么如何获取要更新的这些元素呢?用JavaScript获取这些节点的方法有很多种,下面是总结的一些方法.
主要介绍了DevExpress实现TreeList向上递归获取公共父节点的方法,需要的朋友可以参考下
主要介绍了DevExpress实现TreeList向上递归获取符合条件的父节点,需要的朋友可以参考下
代码 博文链接:https://blueskylan.iteye.com/blog/848447