1

マネージャー ID の従業員の階層を取得しようとしていました。既知のレベルでそれを行うことができました。しかし、私はその階層内のレベルの仲間全体が欲しい. 私のテーブルはこんな感じです。

    Super_id 従業員 ID

    10 30
    10 28
    10 16
    16 34
    16 45
    45 67
    45 36
    24 69
    24 76

パラメータとして 10 を渡します: 出力は 30,28,16,34,45,67,36 である必要があります

単一のクエリは期待していません。ストアド プロシージャ/関数も使用できます。

4

1 に答える 1

0

これは、データベースで stod プロシージャを使用するか、アプリケーションに対して複数回クエリを実行することによってのみ可能です。固定数の階層レベルがある場合、その数の自己結合を実行できますが、親ポインターのみから SQL を使用して完全なツリーを取得することはできません。

ただし、これを実装するための一般的な手法が 2 つあります。1 つはネストされたセット モデルと呼ばれ、左右の境界によって定義される各レベルのセットの表現を使用します。2 番目のバリアントは、具体化されたパスのバリアントです。このバリアントでは、各要素のフル パスを指定します (親のいずれかが変更されるたびに更新する必要があります)。

それぞれの手法には、独自の長所と短所があります。特定の領域で使用できるものを決定するのはあなた次第です。

于 2012-10-29T08:43:01.603 に答える