【问题标题】:SQL query to obtain entire tree by root idSQL查询通过root id获取整棵树
【发布时间】:2020-09-26 07:02:49
【问题描述】:

我有一个表来存储二叉树数据,结构如下

假设 userId 27,目前我正在获取一堆行并在代码中构建树。
有没有一种有效的方法来通过 sql 查询获取属于 userId 27 的树的所有行(作为节点)?
我有 MySQL 8.0.21。

【问题讨论】:

  • 你是什么意思:“作为节点”? SQL 用于获取、修改数据,但不用于数据图形表示。你都尝试了些什么?预期输出是多少?

标签: mysql sql tree hierarchical-data hierarchical-query


【解决方案1】:

在 MySQL 8.0 中,一个选项使用递归查询:

with recursive cte as (
    select t.* from mytable where userid = 27
    union all
    select t.*
    from cte c
    inner join mytable t on t.parentid = c.userid
)
select * from cte
    

【讨论】:

    猜你喜欢
    • 2011-12-26
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    相关资源
    最近更新 更多