SQL で再帰クエリを送信する方法はありますか?
エンド ノード ID が与えられた場合、ルート ノード ( を持つparentid = NULL
) までのすべての行をレベル順に並べる必要があります。たとえば、次のようなものがある場合:
nodeid | parentid
a | NULL
b | a
c | b
をクエリした後end_node_id = c
、次のような結果が得られます。
nodeid | parentid | depth
a | NULL | 0
b | a | 1
c | b | 2
(深さの代わりに、指定されたエンドノードまでの距離でも作業できます)
私が思いつく唯一の (そして明らかな) 方法は、親ノードに到達するまで、行ごとに 1 つのクエリを実行することです。
それを行うためのより効率的な方法はありますか?