2つの列、つまりMYID
とMYPARENTID
を持つ単純な親子タイプのビューがあります。PL/SQLで階層内のノードを持つルーツを取得
SELECT MYID
FROM MYVIEW
START WITH MYID = 'TargetId1'
CONNECT BY PRIOR MYID = MYPARENTID
そして、私は戻って、このようなものになるだろう:PL/SQLでは、親の子のすべてのリストを取得することは十分に簡単です
MYID
-----------
TargetId1
TargetId1Child1
TargetId1Grandchild1
をしかし、今の私がしたいことを言わせて両親のセットのためにこれを行うには、すべてを一度に:
MYID
---------
TargetId1
TargetId1Child1
TargetId1Grandchild1
TargetId2
TargetId2Child2
TargetId2Grandchild1
TargetId3
TargetId3Child3
TargetId3Grandchild1
:
SELECT MYID
FROM MYVIEW
START WITH MYID IN ('TargetId1', 'TargetId2', 'TargetId3')
CONNECT BY PRIOR MYID = MYPARENTID
私の結果はこのようになります
このようにすると、特定の子ノードがどこから来たのかを知ることができなくなります。私は子供のリストを返すが、私は各子供が由来する根(本質的にはSTART WITH
の値)を知りたい。
MYID ROOT
----------------------------------
TargetId1 TargetId1
TargetId1Child1 TargetId1
TargetId1Grandchild1 TargetId1
TargetId2 TargetId2
TargetId2Child2 TargetId2
TargetId2Grandchild2 TargetId2
TargetId3 TargetId3
TargetId3Child3 TargetId3
TargetId3Grandchild3 TargetId3
私はこれをどのように行うことができますか?
優秀!どうもありがとう。 – DivisionByZorro