如何在sql层次结构上显示祖父母?

2023-12-28

这是我的桌子:

id     |parent_id  |name
-------|-----------|--------------------
      1|          0|Kevin Gravey
      2|          0|John Chen     
      3|          1|Clark Garvey  
      4|          2|Halsey Chen
      5|          3|Carl Garvey
      6|          4|Betty Chen  
      7|          5|Rick Garvey
      8|          6|Donna Chen       
     10|          5|Chris Garvey
     11|          6|Harrington Chen

但我需要使表格看起来像这样:

id     |parent_id  |name
-------|-----------|--------------------
      1|          0|Kevin Gravey
      2|          0|John Chen     
      3|          0|Kevin Gravey
      4|          0|John Chen
      5|          0|Kevin Gravey
      6|          0|John Chen  
      7|          0|Kevin Gravey
      8|          0|John Chen       
     10|          0|Kevin Gravey
     11|          0|John Chen

我使用了来自的查询this https://stackoverflow.com/a/31745768/12273235但我得到的是:

  id       |parent_id  |name
    -------|-----------|--------------------
          1|          0|
          2|          0|    
          3|          1|Kevin Gravey  
          4|          2|John Chen
          5|          3|Clark Garvey
          6|          4|Halsey Chen
          7|          5|Carl Garvey
          8|          6|Betty Chen
         10|          5|Rick Garvey
         11|          6|Donna Chen

有人知道查询是什么吗?我正在使用 postgre。


你走对了。考虑使用这个:

with recursive tree as (
  select id, 
         parent_id, 
         array[id] as all_parents,
         name as parent_name
  from hierarchy
  where parent_id = 0
  union all 
  select c.id, 
         p.parent_id,
         p.all_parents,
         p.parent_name 
  from hierarchy c
     join tree p
      on c.parent_id = p.id 
     and c.id <> all (p.all_parents) 
)
select id, parent_id, parent_name
  from tree;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在sql层次结构上显示祖父母? 的相关文章

随机推荐

  • 进程在读取时挂起

    以下代码通过管道从其他进程读取消息 所有进程都正确打印出所有消息 但它们将永远不会继续经过 while 循环 尝试在 Eclipse 中进行调试 在阅读完所有消息后 它将停止在 while 循环处 索引是分配给每个进程的编号 第一个进程的索
  • 如何使用 PHP 生成二维码?

    我正在尝试将一些数据转换为网页上的二维码 为此 我使用 php qrcode Sourceforge 图书馆主页 http phpqrcode sourceforge net http phpqrcode sourceforge net 我
  • 将图片插入Excel单元格[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想生成一份带有图片的报告 但我无法将图片放入单个单元格中 我可以让图片 浮动 在我的工作表周围 但我需要将它们放入单元格中 我怎样才能做
  • getLocationOnScreen() 与 getLocationInWindow()

    在这两种方法的上下文中 屏幕和视图有什么区别 我有一个按钮 我想获取其中心的 x 坐标 我想这就足够了 public int getButtonXPosition return button getLeft button getRight
  • 调用 ReadAsStreamAsync 时何时或是否要 Dispose HttpResponseMessage?

    我正在使用System Net Http HttpClient http msdn microsoft com en us library system net http httpclient v vs 118 aspx进行一些客户端 HT
  • 返回自定义 C++ 类型的 Q_INVOKABLE 方法

    我有一个 C 方法 设为 Q INVOKABLE 我可以从 QML 调用此方法 它在返回基本类型 如 QString 时起作用 但我不能使用自定义类型 我该怎么做 我应该返回 QVariant 吗 理想情况下 如果可能的话 我想返回一个指向
  • 将枚举转换为另一种类型的枚举

    我有一个枚举 例如 Gender Male 0 Female 1 我有另一个来自服务的枚举 该服务有自己的性别枚举 Male 0 Female 1 Unknown 2 我的问题是我怎样才能写一些快速而漂亮的东西来从他们的枚举转换为我的枚举
  • 了解 CLR 2.0 内存模型

    乔 达菲 给予描述 CLR 2 0 内存模型的 6 条规则 http www bluebytesoftware com blog 2007 11 10 CLR20MemoryModel aspx 这是实际的实现 而不是任何 ECMA 标准
  • 如何在 iPhone UILabel 中设置字距调整

    我正在开发一个 iPhone 应用程序 我想在 UILabel 中设置字距调整 我写的代码 可能围绕kCTKernAttributeName 似乎有错误 我该如何解决这个问题 NSMutableAttributedString attStr
  • 我可以获得父级的 CSS 计数器值吗?

    我需要实现以下列表样式 01 Item 1 02 Item 2 02a Item 2a 02b Item 2b 03 Item 3 如何获取父级的计数器值以在 before我的子项目的内容 在我上面的例子中是02 您使用两个不同的计数器 一
  • 在 Python 中从包含所需字符串的多个文件中查找一个文件

    我有一个像 苹果 一样的字符串 我想找到这个字符串 并且我知道它存在于数百个文件中的一个中 例如 file1 file2 file3 file4 file5 file6 file200 所有这些文件都位于同一目录中 使用 python 查找
  • 在 Java 中对变量使用 Final 是否可以改善垃圾回收?

    今天我和同事们讨论了finalJava 中的关键字可改善垃圾收集 例如 如果您编写如下方法 public Double doCalc final Double value final Double maxWeight 1000 0 fina
  • MYSQL:通过 rand() 查询顺序非常慢

    我必须从表中随机选择 30 条记录 除了查询需要一秒 如果内容被许多用户显示 这会减慢 mysql 的速度 这是查询 SELECT relationship COUNT id AS number FROM FR user friends G
  • Parse.com 更新用户云代码给出错误 206:无法修改用户

    我正在尝试在解析服务器上编写一个简单的云代码函数来更新用户的参数 我的功能如下 Parse Cloud define updateUser function request response var query new Parse Quer
  • TcpListener:如何检测客户端断开连接?

    如何检测客户端何时与 TcpListener 断开连接 我的每个客户都在单独的线程中处理 Look at 网络流 读取 http msdn microsoft com en us library system net sockets net
  • 如何开发 visio 加载项

    我想创建一个 visio 插件 以便可以绘制 BPMN 图 业务流程建模符号 类似的工作可以在这里找到 http www interface com free visio bpmn modeler http www interfacing
  • jdbcTemplate query() 保证维持结果集顺序吗?

    我的问题与这里提出的问题类似 http forum springsource org showthread php 84508 jdbctemplate query sorted result set http forum springso
  • Android:菜单中的圆角

    在我的 MainActivity 中onCreateOptionsMenu方法 我用四个项目扩充了一个基本菜单 请参阅菜单 main xml 由于 DialogFragment 中可能有圆角 因此如何获得此菜单的圆角 正如您在屏幕截图中看到
  • 如何检索传递给函数调用的关键字参数的原始顺序?

    检索通过 kwargs 传递的关键字参数的顺序对于我正在从事的特定项目非常有用 它是关于制作一种具有有意义维度的 n 维 numpy 数组 现在称为 dimarray 对于地球物理数据处理特别有用 现在说我们有 import numpy a
  • 如何在sql层次结构上显示祖父母?

    这是我的桌子 id parent id name 1 0 Kevin Gravey 2 0 John Chen 3 1 Clark Garvey 4 2 Halsey Chen 5 3 Carl Garvey 6 4 Betty Chen