我试图用我有限的sql知识来解决这个问题。
我有一张table,有几排员工。每个员工向一个mgrid报告。数据可以深入到7-8级,员工向经理汇报,经理向高级经理汇报,高级经理向主管汇报,等等。
我的table是这样的:
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
我的最终目标是输出这样的东西(多层次)
Ron
Shack
Steve
Bob
Mike
Jenn
Sarah
Ana
Jane
Michelle
James
Chris
Alex
Chris
目前在5.6版本的mysql开发环境和8.0版本的本地环境中。
谢谢。
1条答案
按热度按时间xhv8bpkk1#
经过大量的搜索,我找到了一个解决方案,可以生成我想要的结果(或者至少非常接近我需要的结果)。我把这个答案贴给其他可能在找的人。
这就是我找到的资源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/