在 oracle 树查询中连接其他表

2024-04-06

给定一个简单的(id,description)表t1,比如

id  description
--  -----------
1   Alice
2   Bob
3   Carol
4   David
5   Erica
6   Fred

以及一个父子关系表t2,比如

parent  child
------  -----
1       2
1       3
4       5
5       6

Oracle 提供了一种通过一些自定义语法扩展将其作为树进行遍历的方法:

select parent, child, sys_connect_by_path(child, '/') as "path"
from t2
connect by prior parent = child

确切的语法并不重要,我可能在上面犯了一个错误。这 重要的是上面会产生类似的东西

parent  child  path
------  -----  ----
1       2      /1/2
1       3      /1/3
4       5      /4/5
4       6      /4/5/6
5       6      /5/6

我的问题是:是否可以在 sys_connect_by_path() 中加入另一个表(例如上面的 t1 表),以生成类似以下内容的内容:

parent  child  path
------  -----  ----
1       2      /Alice/Bob
1       3      /Alice/Carol
... and so on...

在查询中,将 T2 替换为连接 T1 和 T2 的子查询,并返回父项、子项和子项描述。然后在 sys_connect_by_path 函数中,引用子查询中的子描述。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 oracle 树查询中连接其他表 的相关文章

随机推荐

  • 单击按钮后更改键盘布局

    我正在开发一个 Android 应用程序 并且我有一个EditText和一个二RadioButtons A and B 我想做的是 When RadioButtonA 已选中 我想更改键盘布局以使用 完成 按钮显示它 当 的时候RadioB
  • 设置电子邮件正文 HTML 格式

    我将如何让正文以 HTML 格式工作 我需要添加什么以及我需要添加哪一行 我试过 MailMessage IsBodyHtml true 但这对我不起作用 这是这样做的方法吗 该代码应该替换另一行还是应该单独占一行 using System
  • 有没有简单的方法可以在 C# 中创建方法并动态设置其主体?

    我将方法体保存在字符串中 我想动态创建方法 但我不知道 如何设置它的身体 我看到使用 CodeDom 的方式非常乏味 我看到使用 Emit 和操作码 有什么方法可以使用字符串变量中的现成代码吗 string method body retu
  • 使用 $ 和字符值动态选择数据框列

    我有一个由不同列名组成的向量 我希望能够循环每个列名以从 data frame 中提取该列 例如 考虑数据集mtcars以及一些存储在字符向量中的变量名称cols 当我尝试从中选择一个变量时mtcars使用动态子集cols 这些工作都不是
  • 主窗口关闭时 QWidget 不会关闭

    我正在尝试创建一个主窗口 QWidget 当单击按钮时它会打开一个新的 QWidget 但是当我关闭主窗口时 最近打开的 QWidget 不会关闭 main cpp QApplication a argc argv MainWindow w
  • 有没有 recaptcha v2 关闭事件?

    我用这样的代码渲染 grecaptcha let callback const p new Promise resolve gt callback result gt resolve result grecaptcha render el
  • 使用 SQL Server CTE 扁平化层次结构系列

    寻找 SQL Server CTE 示例来创建层次结构 以便我可以输出所有系列 例如展平每个层次结构 例如 在家谱中 如果根从祖父母开始 我需要每个家庭成员的层次结构列表 其中包含成员详细信息 父母的行详细信息 喜欢 child1 row
  • 模型绑定下拉选择值

    我有一个模型 该模型有一个public List
  • 使用 Python 捕获 Mac OS X 系统音频输出

    我一直在尝试使用 劫持 Mac OS X 系统音频PyAudio http people csail mit edu hubert pyaudio 并在Python中保存为wav 也就是说 我不想从麦克风等输入设备进行录制 我想获取任何或所
  • 如何防止 Visual Studio 或 Docker 更改主机端口号?

    我已经对我的 Web 应用程序进行了 Docker 化 并且可以在 Visual Studio 中运行它 但是 它选择使用的主机端口号并不一致 在哪里将其配置为始终使用相同的端口号 我发现我可以通过编辑来做到这一点launchSetting
  • GC.Collect()

    好吧 我已经读过几个有关它的主题 但就这样吧 假设我有一个应用程序 基本上我会时不时地单击一个按钮 几分钟内会发生很多事情 然后它可能会再空闲一个小时 或者可能只是一分钟 在这一切结束之后 调用 GC Collect 不是一个很好的情况吗
  • Java EE、EJB 文件处理

    我正在开发一个网络应用程序 允许用户上传图片 然后系统将为他们生成拇指 我的问题依赖于这样一个事实 EJB 可以分布在多个服务器上 因此不允许直接处理文件 我可以将图像存储在数据库中 但我希望将它们作为文件存储在其中一台服务器中 我怎样才能
  • 将 Primefaces Jar 3.3 替换为 4.0 后,primefaces 计划事件颜色不起作用

    我使用 primefaces 4 0 并尝试更改 Primefaces Lazy Schedule 中事件的颜色 因此我有以下 xhtml 代码
  • JavaScript:扩展 Array.prototype 有什么危险?

    谷歌 JavaScript 风格指南建议不要延长Array prototype https google github io styleguide jsguide html disallowed features modifying bui
  • libgdal.so.20 问题 centos rgdal

    有人可以帮我理解 rgdal 的问题是什么吗 我为centos 6 64位安装了gdal 2 但没有成功安装rgdal 我试图找出问题所在 但在互联网上没有找到任何有用的信息 这是 Rstudio 服务器控制台 install packag
  • 获取异常实例类名

    我想知道这种情况下的异常实例是什么 try some risky actions catch Exception e System out println Get instance name there 我怎样才能实现这个目标 干得好 tr
  • Angular 10:无法编写参考

    我尝试按照 Angular 更新指南从 Angular 8 升级到 Angular 10 我的项目由核心应用程序 共享 2 个库 谷歌地图和共享组件 和一个额外的 apk fsm 2 个库 应用程序及其元数据 组成 核心和共享的构建正在通过
  • 对树数据进行分组、聚合和求和的最佳方法是什么?

    给定一个自引用表 Item Id pk ParentId fk 具有关联值的相关表 ItemValue ItemId fk Amount 和一些样本数据 Item ItemValues Id ParentId ItemId Amount 1
  • 提交某种类型的模型后运行函数

    我想在实例时运行一个函数Post模型已承诺 我想运行它any他们提交的时间 所以我不想在任何地方显式调用该函数 我怎样才能做到这一点 def notify subscribers post send email to subscribers
  • 在 oracle 树查询中连接其他表

    给定一个简单的 id description 表t1 比如 id description 1 Alice 2 Bob 3 Carol 4 David 5 Erica 6 Fred 以及一个父子关系表t2 比如 parent child 1