我需要在单个表上构造一个查询。表结构和其中的一些虚拟数据如下
id | username | seniorid
1 | Superuser | -1
2 | user1 | 1
3 | user2 | 1
4 | user3 | 3
5 | user4 | 4
6 | user5 | 1
7 | user6 | 6
8 | user7 | 6
9 | user8 | 8
10 | user9 | 9
11 | user10 | 8
12 | user11 | 8
13 | user12 | 8
14 | user13 | 6
15 | user14 | 3
16 | user15 | 2
17 | user16 | 8
18 | user17 | 8
上表中只有一个超级用户。这将是用户层次结构的最高级别。此超级用户是唯一一个将高级 ID 设为 -1 的用户。超级用户是所有用户的父级。在上表中,每个用户可能有也可能没有子用户。表中提到了父用户和子用户之间的关系,因此seniorid中的数字只是另一个用户的id。
例如:
考虑关注用户
id | username | seniorid
18 | user17 | 8
在上述情况下,seniorid 为 8,因此上述用户的父级为
8 | user7 | 6
其中作为“user7”6的seniorid,因此父级是
6 | user5 | 1
通过这种方式进行回溯,我们将获得从“超级用户”到“用户17”的以下层次结构列表
id | username | seniorid
1 | Superuser | -1
6 | user5 | 1
8 | user7 | 6
18 | user17 | 8
这个层次结构将有多达 n 个级别,即多达许多级别
我想要使用单个查询的层次结构结果。
在构建上述查询时,我需要您的帮助。请任何人都可以在mysql中给我这样的查询。
我有我需要在单个查询中找出其高级用户列表的用户的 id、用户名、高级用户 ID。这里的单个查询意味着它可能有多个嵌套查询。但作为一个整体,它将作为单个查询触发。