我有两个表 - '用户' 和 '监管'
对于这个例子,我的用户表非常简单:-
Users
=====
ID (PK)
UserName
一些用户需要管理其他用户,因此我建立了第二个表格“Supervision”来管理这个过程:
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
我的“Supervision”数据如下:
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的人,因此它需要查看Bob的直接下属,以及他们的直接下属,依此类推——在这种情况下,结果将给出Margaret、Amy、Emma和Carol。
我假设这需要某种递归,但我完全卡住了...