2

I have a table(lets name it HEIRARCHY_TABLE ) in this format representing hierarchical data where a tree is stored in this format.

HEIRARCHY_TABLE (parent_name ,parent_id     ,child_name ,child_id)
Sample Data in HEIRARCHY_TABLE:-
-------------------------------------------
parent_name |parent_id     |child_name |child_id
--------------------------------------------
parent_1  | parent_1_id   | leaf_node |  leaf_node_id1

parent_2   | parent_2_id   | parent_1  |  parent_1_id   

the above scenario is showing data for a case where parent_2->parent_1->leaf_node where -> representing "is parent of " relation-ship.

I need to query this table and get a result like this for all leaf nodes. Result:-

leaf_node | parent_1 | parent_2 | parent_3 |parent_4 | parent_5 |parent_6 | parent_7

and if for suppose a leaf node has only two parents then i require the rest of the parent values to be null. i.e..,if it has only 5 parents.then parent_6 and parent_7 should be null. Note :- the above table contains multiple trees.hence it contain multiple roots.I need data for all the trees available in this table in this format.the maximum level in all the trees is 7 only.

4

2 に答える 2

0

一般的なテーブル式については、Google で検索してください。あなたが探しているのは、再帰クエリだと思います。実際には存在しない親に対してクエリが null を返すようにするために、いくつかのゲームをプレイする必要があります。[これをチェックしてください。] ( http://www.morganslibrary.org/reference/with.html )

于 2013-07-11T22:03:54.523 に答える
0

最速のクエリは、階層 IDを使用することです。次に、階層 ID 列で CONTAINS を使用して、ツリーのすべてまたは一部に対してクエリを実行できます。

もちろん、これは、この列を作成することが許可されている/できることを前提としています。

オラクルの場合、階層クエリを実行できます。その効率/非武装化係数についてはわかりません。http://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm

于 2013-07-11T22:03:11.040 に答える