oracle 中怎样递归查询出子节点的最上层父节点,并且其父节点是自身

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 中怎样递归查询出子节点的最上层父节点,并且其父节点是自身相关的知识,希望对你有一定的参考价值。

参考技术A

1、创建测试表,create table test_connect(id number, p_id number);

2、插入测试数据,

insert into test_connect values(1,1);

insert into test_connect values(2,1);

insert into test_connect values(3,2);

insert into test_connect values(4,3);

commit;

3、查询数据表内容,select * from test_connect ,

4、执行递归查询语句,加入nocycle要素,不会出现【ORA-01436: 用户数据中的 CONNECT BY 循环的错误】,执行结果如下,

select *

  from test_connect t

 start with id = 4

connect by nocycle prior t.p_id = t.id

MySQL怎样做递归查询

参考技术A mysql的逆袭:如何做递归层次查询

最近在做一个从oracle数据库到mysql数据库的移植,遇到一个这样的问题

在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但shi,在MySQL的目前版本中还没有对应的函数!!!

换句话来说,想要用mysql实现递归查询,根本做不到!!!
可是经过我数天茶不思饭不想的刻苦琢磨,终于想到了一个合理的,适用于mysql和其他sql的解决方案。
方案一出,就秋风扫落叶之势,席卷整个dao层~~~所到之处,所有问题迎刃而解,让所有问题都不再为问题 都成为了我这个函数的炮灰而已。。。

以上是关于oracle 中怎样递归查询出子节点的最上层父节点,并且其父节点是自身的主要内容,如果未能解决你的问题,请参考以下文章

oracle 递归 通过子节点查询根节点

mysql如何根据很多子节点查询出父节点,只要一条路径上的

Oracle递归查询父子兄弟节点

ORACLE数据库递归查询当前节点的父节点和子节点(tree)

mysql如何无限极查找最顶层id节点

SQL递归获取所有父节点的函数