Ich wollte die topologische Art eines DAG finden.Können wir die Ausgabe einer rekursiven Abfrage in eine andere rekursive Abfrage verwenden?
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);
Dieser Code gibt die Ausgabe der topologischen Reihenfolge eines Graphen an. Jetzt möchte ich diese Ausgabe in eine andere rekursive Abfrage verwenden, um den Pfad von einem Knoten zum anderen zu finden.
Kann ich die von diesem Code generierte Ausgabe in eine andere rekursive Abfrage verwenden. Ich habe versucht, das auf eine normale Art und Weise zu tun, aber die Ausgabe zeigte Fehler.
Konnten Sie diesen Weg gerade erhalten, indem Sie dem vorhandenen rekursiven CTE ein neues Feld hinzufügen? – JNevill
Wie? Angenommen, ich möchte den Pfad von 3 nach 7 erhalten. Ist das möglich, ohne eine weitere rekursive Abfrage zu schreiben? – user3503711