You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle树形结构下根据子节点查询所有上层父节点直至根节点的实现方案

Oracle 层次查询向上遍历父节点实现方案

你可以通过调整CONNECT BY的关联方向实现从子节点向上遍历所有祖先节点,具体代码如下:

SELECT lpad(' ', level*3, ' ') || family_member as who, level
FROM family
START WITH family_member = 'Sally'
CONNECT BY family_member IN (PRIOR MOTHER, PRIOR FATHER)
-- 若不需要返回查询起点Sally本身,可取消注释下方过滤条件
-- WHERE level > 1
ORDER BY level;

逻辑说明

  • START WITH family_member = 'Sally':指定遍历的起点为需要查询的子节点
  • CONNECT BY family_member IN (PRIOR MOTHER, PRIOR FATHER):要求当前层级的家庭成员,等于上一层级(子节点)的母亲或父亲,实现向上查找父节点的遍历逻辑
  • 遍历会自动在某一层级的父母字段均为null时停止,返回所有祖先节点

内容的提问来源于stack exchange,提问作者Zakaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:36:02