t1、t2、t3の3つのテーブルがあります。
t1-階層テーブル(idとparent_idを持つ)
t1はt2に接続され、t2はt3に接続されます(結合)
入力:t1のいくつかのID
これらの識別子にツリーを構築する必要があります(すべての親ノードを収集するため)
次に、t2とt3をくっつけて、木を下に構築します
親のトップスの子のt3name(t3から)の値を復元することも必要です。
出力:各t3nameの階層ツリーを受信する必要があります
私のSQLリクエストですが、非常に遅いです:
ミニ例: http ://sqlfiddle.com/#!4 / 0b607 / 2
SELECT id, name, t3name FROM
(SELECT distinct t1.id as id,
t1.parent as parent,
t1.name as name,
connect_by_root(t3.name) as t3name
FROM table1 t1
LEFT OUTER JOIN table2 t2
ON t1.t2_id = t2.id
LEFT OUTER JOIN table3 t3
ON t2.t3_id = t3.id
START WITH t1.id in (83, 98, 9, 19, 4, 101)
CONNECT BY PRIOR t1.parent = t1.id)
WHERE t3name IS NOT NULL
START WITH parent = 0
CONNECT BY PRIOR id = parent and PRIOR t3name = t3name