我有两个表 - “用户”和“监督”
对于这个例子,我的用户表非常简单:-
Users
=====
ID (PK)
UserName
一些用户管理其他用户,所以我建立了第二个表“监督”来管理这个:-
Supervision
===========
UserID
SuperID - this is the ID of the staff member that the user supervises.
此表用于将用户表连接到自身以识别特定用户主管。可能是用户有多个主管,因此此表完美地用于此目的。
这是我在“用户”中的示例数据:-
userID userName
1 Bob
2 Margaret
3 Amy
4 Emma
5 Carol
6 Albert
7 Robert
8 Richard
9 Harry
10 Arthur
还有我在“监督”中的数据:-
userID superID
1 2
1 3
2 4
2 5
3 4
3 5
6 1
6 7
7 8
7 9
9 10
如果我想查看谁直接向 Bob 报告,编写 SQL 查询很简单,并告诉我 Margaret 和 Amy 是他的直接报告。
然而,我想做的是编写一个查询,显示 Bob 下的每个人,所以它需要查看 Bobs 的直接下属,然后是他们的直接下属,依此类推——它会给出 Margaret、Amy、Emma 和 Carol作为这种情况下的结果。
我假设这需要某种递归,但我完全被卡住了..