SQL 高级查询
层次化查询
层次化结构可以理解为树状数据结构,由节点构成。比如常见的组织结构由一个总经理,多个副总经理,多个部门部长组成。再比如在生产制造中一件产品会有多个子零件组成。举个简单的例子,如下图所示

汽车作为根节点,下面包含发动机和车身两个子节点,而子节点又是由其他叶节点构成。(叶节点表示没有子节点的节点)
假如我们要把这些产品信息存储到数据库中,会形成如下数据表。

我们用 parent_product_id 列表示当前产品的父产品是哪一个。
那么用 SQL 语句如何进行层次化查询呢?这里就要用到 CONNECT BY 和 START WITH 语法。
我们先把 SQL 写出来,再来解释其中的含义。
SELECT
level,
id,
parent_product_id,
name
FROM
product
START WITH id = 1
CONNECT BY prior id = parent_product_id
ORD

本文介绍了在MySQL中进行层次化查询的方法,包括使用CONNECT BY和START WITH语法,以及如何通过递归查询实现相同效果。通过示例展示了如何查询具有层次结构的数据,如组织结构或产品组件,并通过调整查询来呈现更清晰的层次感。
最低0.47元/天 解锁文章
368

被折叠的 条评论
为什么被折叠?



