PostgreSQL 获取指定根节点及其所有子集的id

要获取所有子集的ID,您可以使用递归CTE(WITH RECURSIVE)查询来实现。以下是一个示例查询语句:

WITH RECURSIVE cte AS (
  -- 选择指定根节点ID的id和parent_id
  SELECT id, parent_id
  FROM your_table
  WHERE id = ? -- 填写根节点的ID

  UNION ALL

  -- 将your_table和CTE连接起来,并选择子节点的id和parent_id
  SELECT your_table.id, your_table.parent_id
  FROM your_table
  JOIN cte ON your_table.parent_id = cte.id
)

-- 从CTE中选择所有的id
SELECT id FROM cte;

在这个查询中,我们使用了递归CTE来逐级连接子集。它首先选择根节点id,并通过与父id匹配连接到下一级子集,然后持续递归直到没有更多的子集。

请将 your_table 替换为您的实际表名,并将 ? 替换为根节点的ID。

解释:

  • 这是一段使用递归查询的SQL语句,用于查询指定根节点ID下的所有子节点ID。
  • 使用了WITH RECURSIVE关键字来定义一个CTE(公共表达式)。
  • CTE的初始部分是一个SELECT语句,用于选择指定根节点ID的id和parent_id。
  • 然后使用UNION ALL关键字连接了另一个SELECT语句,该语句通过JOIN操作将your_table和CTE连接起来,其中连接条件是your_table.parent_id = cte.id。
  • 这样就形成了一个递归查询,不断地将子节点连接到CTE中,直到没有更多的子节点为止。
  • 最后,使用SELECT语句从CTE中选择所有的id。

相关推荐

  1. PostgreSQL 获取指定节点及其子集id

    2023-12-19 03:56:02       55 阅读
  2. Postgresql获取指定时间前时间

    2023-12-19 03:56:02       42 阅读
  3. MySQL中查询所有表及其信息

    2023-12-19 03:56:02       40 阅读
  4. iOS学习- iOS获取指定天数

    2023-12-19 03:56:02       24 阅读
  5. Win32 枚举指定进程子窗口

    2023-12-19 03:56:02       58 阅读
  6. 能抵达节点(二分法、DFS)C++

    2023-12-19 03:56:02       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-19 03:56:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-19 03:56:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-19 03:56:02       87 阅读
  4. Python语言-面向对象

    2023-12-19 03:56:02       96 阅读

热门阅读

  1. Vue系列之指令 v-html

    2023-12-19 03:56:02       53 阅读
  2. Electron中Tray的setContextMenu导致窗口无法聚焦

    2023-12-19 03:56:02       57 阅读
  3. 【MySQL】(DDL)总结

    2023-12-19 03:56:02       63 阅读
  4. 常见SQL语句速通

    2023-12-19 03:56:02       54 阅读
  5. spring之基于注解管理Bean

    2023-12-19 03:56:02       48 阅读
  6. 【Unity】如何让Unity程序一打开就运行命令行命令

    2023-12-19 03:56:02       62 阅读
  7. 【redis】redis使用get及set功能,及发布订阅

    2023-12-19 03:56:02       59 阅读
  8. uniapp蓝牙

    2023-12-19 03:56:02       57 阅读
  9. log4j日志打印配置

    2023-12-19 03:56:02       69 阅读
  10. mysql 有哪些日志文件?都有哪些作用?

    2023-12-19 03:56:02       62 阅读