3

これは私のテーブルのスキーマです:

Create Table OBJECT_TREE 
( PARENT_ID     int, 
CHILD_ID    int )

そのテーブルのサンプル データは次のようになります。

PARENT_ID   CHILD_ID
---------------------
1             2
2             3
2             4
2             5
3             6
3             7
4             8
4             9

1 ________2________3_______6
                   |       |
                   |       |______7
                   |
                   |
                   |______4_______8
                   |              |
                   |              |______9
                   |
                   |
                   |______5

SQL Server ストアド プロシージャは、特定のノードの階層内のすべてのオブジェクトを「下位」に戻す必要があります (ノード 2 の下位階層オブジェクトはすべて 3、4、5、6、7、8、9 です)。

ツリーの葉ノードを見つけるのを手伝ってください。

4

2 に答える 2

7

幸いなことに、これは再帰を必要としない数少ないケースの 1 つです。

SELECT DISTINCT child_id
FROM object_tree ot
WHERE NOT EXISTS (
    SELECT *
    FROM object_tree nx
    WHERE nx.parent_id = ot.child_id
    );
于 2013-01-13T16:05:47.417 に答える