階層データのクエリについてサポートが必要です。これは単一の単純なテーブルであり、ルートエントリの場合はnullになる可能性がありますparent_id
。id
create table edition (
id NUMBER(20),
parent_id NUMBER(20)
);
テーブル内の各レコードについて、最大IDを持つ最も深い子を見つける必要があります。レコードに子がない場合は、独自のIDを返す必要があります。私は自分で試しましたがSTART WITH A.id = B.id
、AとBがサブクエリである場合は使用できませんでした。これは、Oracleがそのような結合を許可していないようです。
サンプルデータは次のとおりです。
id parent_id
----------------------
1 NULL
2 1
3 1
4 1
5 4
6 5
7 5
およびサンプル結果
id result
----------------------
1 7
2 2
3 3
4 7
5 7
6 6
7 7