你好,
我的数据库表结构如下。
TableName:- UserTable
id | empName | reportsTo
-----------------------
1 | XYZ | -
2 | ABC | 1
3 | MNP | 2
4 | IJK | 3
5 | PQR | 4
6 | DEF | 3
7 | STU | 2
我怎样才能在最高层中得到他向其报告的用户的详细信息。
当我选择id为的用户时 7
输出应该是
id empName reportsTo
2 ABC 1
1 XYZ -
当我选择id为的用户时也是这样 6
它应该返回id的数据 3,2,1
.
2条答案
按热度按时间8nuwlpux1#
我不认为你理解我发布的可能重复的链接,所以这里的解决方案发布了一些琐碎的调整,以适应您的数据。
对于6号身份证
注意,对于id 1,我已将reports从-更改为null。只有当reports to小于id时,这种方法才有效。否则,您必须认真考虑一下您的数据结构。
ztmd8pv52#
有一个临时的解决方案,但不好继续使用它。你必须放下你的table,创建一个新的有组织的table
第一次计数不同
reportsto
价值观你会得到一个号码。假设你得到(5),那么有5个是一些员工的老板
如果你得到(10),那么查询将是
.
.
.
等等