解決方法は約3時間ありましたが、実際には私のために働くものは見つかりませんでした(すべてがCTE
を使用していますが、 CTE
)。MySQLで再帰的にマネージャーの従業員数を取得
私はそうのようなmanager <> employee
関係の階層を含む従業員のテーブルを持っている:
+----+-----------+-----------+
| id | managerID | name |
+----+-----------+-----------+
| 1 | 0 | Joe |
| 2 | 1 | Melissa |
| 3 | 1 | Simmons |
| 4 | 3 | Clarke |
| 5 | 4 | Lola |
| 6 | 4 | Britney |
| 7 | 3 | Suzi |
| 8 | 4 | Dali Lama |
+----+-----------+-----------+
私は彼の下で、直接および間接的に従業員の数を返します。従業員のid
を取るクエリーを必要としています。
例えば:従業員ID 1
が
7
の数を返します。例えば:従業員ID 3
が5
私はこれについて移動するにはどうすればよい
の数を返しますか? 私はちょうどなぜこれがとても複雑であるか分かりません。事前に 感謝:)
可能な複製を作品(http://stackoverflow.com/questions/19690325/sql-query-to-get-recursive-of-employees-under-each-manager) – Jocelyn
階層構造のレベルに制限がない場合、MySQLでは不可能だと思います。 「MySQLの階層型クエリ」を検索して、いくつかの投稿があります。 –
このロジックにはストアドプロシージャを使用するか、データ構造を変更して各行に完全な階層構造を持たせる必要があります。 –