CTE, um alle untergeordneten Elemente (Nachkommen) eines übergeordneten Elements abzurufen

7

Ich habe dieses Problem, das mir Kopfschmerzen bereitet ...

Sagen wir, ich habe eine Tabelle mit einigen tausend Zeilen und die Struktur der Tabelle besteht aus einem Elternteil - & gt; Kind Beziehung.

Die Beziehungen können bis zu 6 Ebenen umfassen. Hier ist ein Beispiel für die Tabellenstruktur:

%Vor%

Wir haben einen Prozess, der die gesamte Tabelle durchläuft, um die Beziehungen zu erhalten, und speichert die Spalte "levels". Dieser Prozess ist sehr langsam (wegen der Schleifen) und ich habe versucht, die Beziehungen herzustellen, aber gescheitert miserabel.

Bis jetzt habe ich diesen Cte ausprobiert, aber er tut nicht das, was ich mir erhofft habe und außerdem scheint er Zeilen zu replizieren ...

%Vor%

Wie ich schon früh erwähnt habe, haben wir einen Prozess, der den Tisch umläuft, er macht seine Arbeit, aber es kann bis zu 30 Minuten dauern, meine Frage ist, gibt es einen besseren Weg, dies zu tun? Ich weiß, dass CTE mir erlaubt, es zu tun, aber ich lutsche es, auch die Level-Spalte sollte berechnet und auf dem Tisch aktualisiert werden, ist das möglich?

Hier ist ein Sqlfiddle für den Fall, dass jemand helfen könnte, danke!

    
Sam Ccp 11.11.2013, 19:40
quelle

2 Antworten

25

Das sollte es tun:

%Vor%

Und hier ist die aktualisierte SQL Fiddle .

Überprüfen Sie auch diesen Link für Hilfe bei CTEs ... Sie sind definitiv gut zu wissen:

Hoffe, das macht den Trick!

    
John Bustos 11.11.2013, 20:22
quelle
2
%Vor%     
Charles Bretana 11.11.2013 19:45
quelle