`
qqq244078468
  • 浏览: 3160 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

postgresql中的树遍历查询

阅读更多
废话不多说直接coding
1、建表
CREATE TABLE test
(
  id text,
  pid text,
  msg text
)
insert into test(id,pid,msg) values('1','','一级(1)');
insert into test(id,pid,msg) values('2','','一级(2)');
insert into test(id,pid,msg) values('3','','一级(3)');
insert into test(id,pid,msg) values('4','','一级(4)');

insert into test(id,pid,msg) values('11','1','二级(1)');
insert into test(id,pid,msg) values('22','2','二级(2)');
insert into test(id,pid,msg) values('33','3','二级(3)');
insert into test(id,pid,msg) values('44','4','二级(4)');

insert into test(id,pid,msg) values('111','11','三级(1)');
insert into test(id,pid,msg) values('222','22','三级(2)');
insert into test(id,pid,msg) values('333','33','三级(3)');
insert into test(id,pid,msg) values('444','44','三级(4)');


2、查询

with recursive tmp as
(
  select a.id,a.pid,a.msg from test a where id='1'
  union all
  select a.id,a.pid,a.msg from test a inner join tmp t on t.id=a.pid
) select msg from tmp



结果:

"一级(1)"
"二级(1)"
"三级(1)"


分享到:
评论

相关推荐

    PostgreSQL树形结构的递归查询示例

    本文将详细探讨如何在 PostgreSQL 中进行树形结构的递归查询,并通过具体的示例代码来展示其实现。 首先,我们需要构建一个简单的树形结构数据表。在这个例子中,我们创建了一个名为 `tree_data` 的表,包含以下...

    在PostgreSQL中实现递归查询的教程

    通过这种方式,我们可以按正确的顺序获取整个调查的结构,而无需遍历整个实体树,从而提高查询性能,尤其是在处理大型数据集时。 总的来说,PostgreSQL的递归查询功能使得在数据库级别处理层次数据变得简单且高效。...

    数据库设计之递归树查询

    递归查询是一种在数据库中遍历层级关系的查询方式,它允许查询结果自我引用,从而能够处理具有嵌套或无限深度的层级数据。在多级分类、组织架构、家族树等场景中,递归查询能有效地获取所需信息。 二、`WITH`语句...

    无限级树形菜单(Sql数据库)

    这通常涉及递归函数,遍历查询结果并构建树节点。每个节点包含其自身的属性(如名称、URL等),以及一个子节点列表,表示它的下级菜单。 在前端展示时,可以选择各种JavaScript库,如jQuery UI、AngularJS、Vue.js...

    数据库控制树形结构的生成

    数据库中的树形结构是一种常见的数据组织方式,尤其在索引、查询优化以及关系数据库的层次模型中发挥着关键作用。这种结构以节点和边的形式表示数据,其中每个节点代表一个数据项,而边则表示节点之间的关系。在本文...

    数据库-表-树节点读取.rar

    例如,使用MySQL的`WITH RECURSIVE`语句或PostgreSQL的`WITH`语句,可以从根节点开始,遍历整棵树,获取所有子节点的信息。 3. **层次查询**:另一种方法是使用层次查询,如Oracle的`CONNECT BY`或SQL Server的`...

    sql树形数据处理示例(Jet wang 最新整理)

    在SQL数据库中,树形数据...通过学习和实践这些方法,我们可以有效地处理和查询SQL中的树形数据,无论是简单的分类树还是复杂的多层级结构。 Jet Wang的示例将提供具体的代码实例,帮助我们更好地理解和应用这些概念。

    树形结构数据库设计

    层次查询使用START WITH和CONNECT BY语句(在Oracle中)或WITH RECURSIVE(在标准SQL及某些支持的数据库如PostgreSQL中)来逐层遍历树。路径枚举则通过存储每个节点的完整路径(例如,通过逗号分隔的父节点ID列表)...

    最简单的B树

    5. **层遍历**:了解如何按照层次顺序遍历B树,这对于打印树的结构和进行范围查询很有帮助。 6. **销毁B树**:理解如何释放B树所占用的内存资源,确保程序的内存管理正确无误。 通过学习“最简单的B树”,你可以...

    组织机构树形列表实现-源代码

    中序遍历(左-根-右)在二叉搜索树中可以得到有序序列;后序遍历(左-右-根)常用于计算表达式树等。 5. **动态加载/懒加载**:考虑到树可能很大,一次性加载所有节点可能导致性能问题。因此,可以采用动态加载或懒...

    Greenplum内核揭秘之查询优化.pptx.pdf

    查询优化器会遍历所有可能的执行方式,并选择代价最小的执行方式,最后将其转换为可执行的计划树。 查询优化的具体处理过程 查询优化的处理过程可以分为多个阶段,包括查询树的预处理、扫描连接优化、计划树的后...

    bcb xe5的串口通讯及Treeview数据库树形显示

    “从数据库里面查询树形节点及其子节点”涉及到SQL查询技巧,例如使用JOIN语句或者递归查询(如在支持递归查询的数据库系统中,如PostgreSQL或SQL Server的CTE)。查询结果然后需要被转换成适合在TreeView中展示的...

    PostgreSQL教程(十):性能提升技巧

    查询规划是一个由多个规划节点组成的树形结构。在PostgreSQL中,最底层的节点通常是表扫描节点,包括顺序扫描、索引扫描和位图索引扫描等不同类型的扫描。顺序扫描涉及按顺序遍历整个表,而索引扫描则利用索引来快速...

    edb数据库保存树形框分支结构源码

    另外,层次查询语言(如PostgreSQL的`WITH RECURSIVE`)可能被用来遍历树形结构。 7. **编程语言**:虽然未明确指出,但考虑到数据库操作,源码可能是用SQL配合某种后端编程语言(如Python、Java、C#)实现的。 8....

    后端面试题汇总(Python、Redis、MySQL、PostgreSQL、Kafka、数据结构、算法、编程、网络).zip

    4. **PostgreSQL**: PostgreSQL是另一个强大的开源数据库系统,支持复杂查询和ACID事务。面试中可能会讨论其特点、JSON支持、窗口函数、自定义类型和触发器等。 5. **Kafka**: Kafka是一种分布式流处理平台,用于...

    SQL无限级查询

    当我们谈论“SQL无限级查询”时,通常是指递归查询或层级查询,这些查询用于处理具有层级结构的数据,如组织结构、目录树或者员工的上下级关系等。在数据库中,这种类型的数据通常以自连接的形式存储,即表中的一个...

    数据表转化成树形结构

    部分数据库系统,如PostgreSQL,提供了内置的查询功能来直接生成树形结果,如`WITH RECURSIVE`语句。这种情况下,可以在SQL层面完成树形结构的构建,减轻应用程序的负担。 7. **实时更新**: 如果数据是实时更新...

    对索引Include子句的深入分析(已校对)1

    在查询过程中,数据库首先遍历B-Tree找到匹配的叶子节点,接着沿双向链表找到所有匹配的行,最后从表中获取完整的数据。B-Tree的深度影响了查找效率,通常小于5。 **2. 回顾:仅索引扫描(Index-Only Scan)** 仅...

    DTree动态树形菜单

    4. **数据结构和算法**:理解如何将数据库中的数据结构映射到树形结构,以及如何有效地遍历和更新这个结构,需要用到数据结构(如链表、二叉树)和算法(如深度优先搜索、广度优先搜索)知识。 5. **异步编程**:...

Global site tag (gtag.js) - Google Analytics