博客
关于我
postgresql树状结构查询示例
阅读量:795 次
发布时间:2023-03-03

本文共 1109 字,大约阅读时间需要 3 分钟。

PostgreSQL树状结构查询示例
  • 创建一张名为TREE_TEST的表,包含ID、NAME和PARENT_ID字段。ID为主键,NAME用于存储节点名称,PARENT_ID用于存储父节点ID。
CREATE TABLE TREE_TEST (    ID INTEGER PRIMARY KEY,    NAME VARCHAR(32),    PARENT_ID INTEGER REFERENCES TREE_TEST(ID));
  • 插入测试数据。例如:
INSERT INTO TREE_TEST(ID, NAME, PARENT_ID) VALUES(1, 'TREE_1', NULL);INSERT INTO TREE_TEST(ID, NAME, PARENT_ID) VALUES(11, 'TREE_11', 1);INSERT INTO TREE_TEST(ID, NAME, PARENT_ID) VALUES(12, 'TREE_12', 1);

这样创建了一个简单的树状结构,根节点为TREE_1,它有两个子节点TREE_11和TREE_12。

  • 执行树状结构查询。例如,查询根节点为TREE_1的整个树结构,可以使用递归查询语句:
WITH RECURSIVE tree_path (id, name, parent_id, path) AS (    SELECT id, name, parent_id, name    FROM TREE_TEST    WHERE name = 'TREE_1'    UNION ALL    SELECT t.id, t.name, t.parent_id, tp.path || '->' || t.name    FROM TREE_TEST t    JOIN tree_path tp ON t.parent_id = tp.id) SELECT * FROM tree_path;
查询结果如下:  | id | name  | parent_id |         path            |  |---|-------|----------|--------------------------|  | 1 | TREE_1 |      NULL |          TREE_1        |  | 11 | TREE_11 |       1 |       TREE_1->TREE_11    |  | 12 | TREE_12 |       1 |       TREE_1->TREE_12    |

转载地址:http://npxfk.baihongyu.com/

你可能感兴趣的文章
Qt开发——圆面积计算器
查看>>
PostgreSQL学习总结(5)—— PostgreSQL table 创建与删除
查看>>
PostgreSQL学习总结(6)—— PostgreSQL 模式(SCHEMA)详解
查看>>
PostgreSQL学习总结(7)—— PostgreSQL 语句 INSERT INTO、SELECT、UPDATE、DELETE 等学习
查看>>
PostgreSQL学习总结(8)—— PostgreSQL 基于数据库和基于模式(schema)的多租户分析
查看>>
PostgreSQL学习总结(9)—— PostgreSQL 运算符与表达式
查看>>
PostGreSql学习笔记001---PostgreSQL10.4安装(Windows)_支持PostGreGis_PostJDBC
查看>>
PostGreSql学习笔记002---Navicat Premium中管理PostGreSql 错误:字段rolcatupdate 不存在
查看>>
PostgreSQL学习笔记:PostgreSQL vs MySQL
查看>>
PostgreSQL实现shape数据转geojson数据(地图工具篇.18)
查看>>
PostgreSQL导入shape数据(地图工具篇.10)
查看>>
PostGreSql工作笔记003---在Navicat中创建数据库时报错rolcatupdate不存在_具体原因看其他博文_这里使用pgAdmin4创建管理postgre
查看>>
PostGreSql工作笔记004---PostGreSql修改密码_windows和linux下修改
查看>>
Postgresql常用命令行操作_以及Navicat操作PostGis时的问题_自动截取长度_WKB structure does not match exp---PostgreSQL工作笔记005
查看>>
PostgreSQL忘记密码
查看>>
PostgreSQL数据库pg_dump命令行不输入密码的方法
查看>>
PostgreSQL新手入门
查看>>
postgresql树状结构查询示例
查看>>
PostgreSQL流复制参数max_wal_senders详解
查看>>
postgresql流复制配置
查看>>