首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MYSQL从平面表格创建树/组织结构

MYSQL从平面表格创建树/组织结构
EN

Stack Overflow用户
提问于 2018-04-23 22:54:04
回答 1查看 41关注 0票数 0

我正试图用我有限的SQL知识来解决这个问题。

我有一个表,上面有几行员工。每位员工向MGRID汇报工作。数据可以达到7-8个级别,员工向经理汇报,经理向sr汇报。高级经理。经理到主管,等等。

我的表看起来像这样:

代码语言:javascript
运行
复制
EMPID   NAME        MGRID
1       Alex        8
2       Jane        9
3       Bob         10
4       Shack       11
5       Chris       8
6       Sarah       10
7       James       8
8       Michelle    11
9       Ana         11  
10      Steve       11
11      Ron         NULL. <= CEO
12      Mike        3
13      Jenn        3   

我的最终目标是输出如下所示的内容(多层次)

代码语言:javascript
运行
复制
Ron
    Shack
    Steve
        Bob
            Mike
            Jenn
        Sarah
    Ana
        Jane
    Michelle
        James
        Chris   
        Alex
        Chris

当前在mysql开发环境5.6版,本地环境8.0版。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-04-25 03:33:07

经过大量的搜索,我找到了一个解决方案,它可以生成我正在寻找的结果(或者至少非常接近我需要的结果)。我将这个答案发布给其他可能正在寻找的人。

代码语言:javascript
运行
复制
WITH RECURSIVE descendants AS
 (
  SELECT EMPID, NAME, MGRID,  1 as level 
   FROM `EMPTABLE`
    WHERE MGRID = NULL
    UNION ALL
    SELECT t.EMPID, t.NAME, t.MGRID, d.level+1
    FROM descendants d, `EMPTABLE` t
    WHERE t.MGRID = d.EMPID
    )
SELECT * FROM descendants ORDER BY level;

这就是我找到https://mysqlserverteam.com/mysql-8-0-1-recursive-common-table-expressions-in-mysql-ctes-part-four-depth-first-or-breadth-first-traversal-transitive-closure-cycle-avoidance/的资源

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49984078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档