3

Oracle階層クエリについて質問があります。

unit1が親で、unit2が子である、相互に関連するユニットの関係テーブルがあるとします。

IDUNIT1UNIT2その他の列

------大量のデータ--------

1つのユニットを見ていると仮定します。次に、他のユニットとの関係についての完全なグラフ/ツリーが必要です。

互いに接続されている親と子を取得するのは簡単です。

 INSERT INTO search_table
 SELECT id
   FROM  mytable
  START  WITH unit_id1 = 12 (or any random unit id)
CONNECT BY nocycle PRIOR unit_id2 = unit_id1
  GROUP BY id;

これは上に移動するためのものであり、同様に下に移動するためのものです。たとえば、1ステップ上に移動すると、そのユニットの子ユニットは検索されず、親のみが検索されます。したがって、基本的に、親ユニットに別の子(私たちが探している子ではない)がある場合、構文は親のみを探し続けるため、それに到達することはできません。そして後でそれは子供だけを探しますが、これら2つを組み合わせたものは探しません。

各子または親ユニットについて、親と子の両方を検索できる方法はありますか?

4

1 に答える 1

1

単一のクエリでそれを実行できるかどうかはわかりません。
ただし、次の 2 つの手順で簡単に実行できます。

  1. あなたのユニットの古い祖先A(両親を持たない人)を見つけてください
  2. A のすべての子を見つける
于 2012-12-15T07:44:11.727 に答える