0
私はDAGのトポロジカルな種類を見つけたいと思っていました。1つの再帰的クエリの出力を別の再帰的クエリに使用できますか?
create table topo(
v1 int,
v2 int
);
Insert into topo values (1,3),(2,5),(3,4),(4,5),(4,6),(5,7),(6,5),(7,null)
WITH RECURSIVE path(S,d) AS(
select t1.v1, 0 from topo t1 left outer join topo as t2 on t1.v1=t2.v2
where t2.v2 IS null
UNION ALL
select distinct t1.v2, path.d + 1 from path inner join topo as t1 on
t1.v1=path.S
)
select S from path group by S order by MAX(d);
このコードは、グラフのトポロジカルな順序の出力を示します。今私は別の再帰的なクエリに別の頂点からのパスを見つけるためにこの出力を使用したい。
このコードで生成された出力を別の再帰的なクエリに使用できますか?私はそれを通常のやり方でしようとしていましたが、出力に誤りが見られました。
既存の再帰CTEに新しいフィールドを追加するだけで、そのパスを取得できますか? – JNevill
どのように?パスを3から7にしたいとします。別の再帰クエリを作成せずに可能ですか? – user3503711