`
yesjavame
  • 浏览: 694606 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

一个oracle从子节点向父节点查询的问题

阅读更多

今天部门内一个人问我,在oracle中如何从子节点记录向父节点上溯.比如有一个表:

guid parentguid

1      0

2      1

3      1

4      2

5      2

6      5

7      5

8      7

我们从GUID为1根据parentguid关系可以查出该GUID下的所有子节点.

现在要从某一子节点如GUID为7,查出它的父节点, 7->5->2->1的关系.

其实这是一个非常好笑的问题,如果能从父节点查出子节点,那么反过来,以子节点的guid作为父节点的parentguid

子节点就成了父节点.所以

select guid from test start with guid =7 connect by prior parentguid = guid

即可以查出7->5->2->1的关系

分享到:
评论

相关推荐

    根据子节点的金额向上汇总所有父节点的金额

    标题中的“根据子节点的金额向上汇总所有父节点的金额”是一个典型的树形结构数据处理问题,常见于组织架构、账目统计或者数据库层次结构的数据分析。这个问题涉及到的知识点包括但不限于: 1. **树形结构**:在...

    Oracle通过递归查询父子兄弟节点方法示例

    若要同时获取父节点和兄弟节点,可以创建一个临时表并根据级别过滤: ```sql WITH tmp AS ( SELECT t.*, LEVEL lev FROM SYS_ORG t START WITH t.parent_id = '0' CONNECT BY t.parent_id = PRIOR t.id ) ...

    Oracle树查询总结

    使用 `START WITH ID=某个特定值` 定义起始节点,然后 `CONNECT BY parent_id = PRIOR ID` 指示 Oracle 从当前节点开始,逐层查找所有子节点,直至找到所有后代。 4. **查找一个节点的直属父节点(父亲)** 通过 ...

    Oracle递归树形结构查询功能

    Oracle数据库在处理树形结构数据时提供了强大的递归查询功能,这种特性对于组织结构、产品分类、层级菜单等场景的...通过熟练掌握这一特性,开发者可以在数据库层面高效地解决复杂的数据查询问题,减少应用程序的负担。

    oracle树查询

    在Oracle数据库中,可以通过定义表结构来存储这种树状结构的数据,通常会有一个字段用于表示父节点的ID(如`SJFLID`表示上级分类ID),还有一个字段用于表示当前节点的ID(如`ID`)。 #### 二、创建基础表结构 ...

    Oracle树查询实例分析

    这种查询不需要利用树查询特性,因为子节点的`sjflid`字段直接指向父节点的`ID`。 3. **查找所有直属子节点(所有后代)** `START WITH ID = some_id CONNECT BY sjflid = PRIOR ID`的查询能够获取指定节点及其...

    通过父编码信息给子节点分组

    例如,使用`LISTAGG`函数可以将同一父节点下的所有子节点ID聚合在一起,形成一个字符串: ```sql SELECT parent_id, LISTAGG(id, ',') WITHIN GROUP (ORDER BY id) AS child_ids FROM table_name WHERE parent_...

    oracle 树型的寻父或寻子

    Oracle提供了CONNECT BY子句,它允许我们在一个查询中多次引用同一张表,从而实现层级数据的遍历。通过指定START WITH条件来定义树的根节点,然后使用CONNECT BY表达式来定义节点之间的连接规则。例如,如果我们有一...

    【Oracle】树状结构查询

    `WHERE`子句可以用来限制查询结果,但它仅作用于当前节点,不会向下传递至子节点或向上影响父节点。例如,排除特定员工: ```sql SELECT LEVEL, SYS_CONNECT_BY_PATH(a.ename, '/'), a.* FROM empa WHERE a.empno ...

    oracle prior

    PRIOR 被置于 CONNECT BY 子句中等号的前面时,则强制从根节点到叶节点的顺序检索,即由父节点向子节点方向通过树结构,我们称之为自顶向下的方式。例如: ```sql CONNECT BY PRIOR EMPNO=MGR ``` PRIOR 运算符被...

    Oracle树查询及相关函数

    对于顶级父节点,`SJFLID`值为`NULL`,但为了优化查询性能,建议将`NULL`值替换为一个特定值,如0,以避免全文扫描。 1. **查找所有顶级父节点**:这是树查询的基础操作,可以通过简单的条件过滤实现,例如`WHERE ...

    oracle树结构查询方法

    `PRIOR`关键字用于指示父节点和子节点的关系,当PRIOR放在列名前面时,表示该列是父节点的引用。`START WITH`子句则指定了树的起始节点,即根节点。如果没有提供`START WITH`子句,查询会从满足条件的所有行开始,每...

    Oracle查询树形结构

    为了防止查询过程中出现死循环,应当确保在使用CONNECT BY子句时,父节点和子节点之间的关系是明确的,并且数据的完整性得到保证。 总而言之,Oracle提供了一种非常实用和强大的查询方式来处理和检索树形结构数据,...

    Oracle层次查询功能的剖析.pdf

    Oracle层次查询功能是Oracle数据库系统中的一个重要特性,它在关系型数据库管理中为处理具有层级关系的数据提供了便利。本文主要探讨了如何利用Oracle的层次查询功能处理和展示类似树形结构的数据。 首先,层次结构...

    Oracle递归查询

    例如,在处理组织架构、产品分类等数据时,我们经常需要查询某一节点及其所有子节点或者从某个节点追溯到其根节点的信息。在Oracle数据库中,递归查询主要依赖于`START WITH`和`CONNECT BY PRIOR`两个关键语法。本文...

    Oracle中的树状查询(递归查询)

    `CONNECT BY`后的`PRIOR condition2`定义了子节点与其父节点之间的关系。 3. **连接操作符** - `PRIOR`:用于引用当前行的上一行,是递归的关键。 - `SELF`:在某些情况下,可以替换`PRIOR`,表示当前行自身。 -...

    oracle查询成树状

    `CONNECT BY`子句定义了记录之间的连接方式,即如何从一个节点(父节点)导航到其子节点。在这个场景下,通过`prior id = parentid`指明了父子节点间的关联规则:每个记录的`id`字段应与其父节点的`parentid`字段相...

    Oracle中层次查询的使用和探讨.pdf

    层次数据就像一棵树,每个节点有父节点和可能的子节点,根节点没有父节点,而叶节点没有子节点。例如,一个公司组织结构中,总经理是顶层节点,下面有部门经理,经理下面又有员工,形成了一层层的层级关系。 Oracle...

Global site tag (gtag.js) - Google Analytics