次のように見える3つのテーブル(単なる例)があります
Artifact
Id Name
1 abc
2 xyz
3 pqr
4 mno
Classification
Id Artifact_Id Node_id
c1 1 n3
c2 1 n4
c3 3 n5
c4 4 n3
c5 4 n2
taxonomy_Node
Id Parent_id
n1 null
n2 n1
n3 n1
n4 n2
n5 n3
したがって、すべてのアーティファクトは多くの分類 (taxonomyNode で構成される階層、つまり多くのノード) を持つことができます。taxonomyNode に基づいて、そのノードまたはその子を含むアーティファクトのリストが必要です。taxonomy_node に属する分類がある場合、アーティファクトのリストを返そうとしています。また、任意のノードの親が ID として指定されている場合、子ノードを含むアーティファクトを返す必要があります。私はここで本当に明確ではありません。ご不明な点がございましたら、お知らせください。
select A.* from artifact A
inner join classification C
on A.id = C.ARTIFACT_ID
inner join TAXONOMY_NODE T
on C.node_id=T.id
where T.id = 5068
START WITH T.ID = 5068
CONNECT BY PRIOR T.ID = T.parent_id
たとえば、分類テーブル アーティファクト 4 には、ノード n2 と n3 を持つ 2 つのクラス c4 と c5 があります。したがって、ノード ID を n3 として指定すると、アーティファクト 4 とアーティファクト 1 (n3 が含まれているため) とアーティファクト 3 (n3 は n5 の親であるため) が返されます。同様に、ノード ID を n2 として指定すると、4 と 1 が返されます。