「ユーザー」と「監督」の2つのテーブルがあります
この例では、私の users テーブルは非常に単純です:-
Users
=====
ID (PK)
UserName
一部のユーザーは他のユーザーを管理しているため、これを管理するために 2 番目のテーブル「監督」を作成しました:-
Supervision
===========
UserID
SuperID - this is the ID of the staff member that the user supervises.
このテーブルは、特定のユーザーのスーパーバイザーを識別するために、Users テーブルをそれ自体に結合するために使用されます。ユーザーには複数のスーパーバイザーがいる可能性があるため、このテーブルはこの目的のために完全に機能します。
「ユーザー」のサンプルデータは次のとおりです。
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 が彼の直属の部下であることがわかります。
しかし、私がやりたいのは、ボブの下にいるすべての人を表示するクエリを作成することです。そのため、ボブの直属の部下、その直属の部下などを調べる必要があります。これにより、マーガレット、エイミー、エマ、キャロルが得られます。この場合の結果として。
これには何らかの再帰が必要だと思いますが、完全に行き詰まっています..