0

一種の「親から子へ」の方法でレコード間の関係を示すテーブルがあります。[ID] フィールドはレコードを識別し、[PARENT] フィールドはそのレコードの親を [ID] で識別します。これにより、最上位の親のツリー構造が作成されます。例として次の表を参照してください。

[ID]     [PARENT]     [QUANTITY]
123      123          1
456      123          2
789      123          1
321      456          1
654      321          2
987      321          4

[ID] = '123' のレコードがこの「ツリー」の最上位のレコードであることに注意してください。このテーブルをクエリして、最上位のレコードの下にあるすべてのツリー ノード (完全なレコード) を選択する必要があります。たとえば、ツリーの [ID] = '123' の下にあるすべてのレコード (上記のサンプル テーブルのすべてのレコード) です。現在、ストアド プロシージャを使用して、[ID] = '123' のレコードの子を取得し、そのレコードの子などをループ処理しています。この状況では、すべての子が確実に受信されるようにループせずにどのように機能するかわかりません。アドバイスをいただければ幸いです。

4

1 に答える 1

1

"WITH" 共通テーブル式を使用 - 階層クエリで強くお勧めします。

http://msdn.microsoft.com/en-us/library/ms190766(v=sql.105).aspx

于 2013-07-09T22:44:29.653 に答える