Parent-Child rückwärts

Mr. Robot

Fleissiger Benutzer
Beiträge
88
Hallo zusammen,

mal vereinfacht formuliert: Ich habe eine Tabelle mit einer Parent-Child Hierarchie, Beispiel:

Spalte Id - Spalte ParentId
1 - 2
2 - 3
3 - 4

Indem ich die Tabelle immer wieder mit sich LEFT JOINe (ParentId wird in Id gesucht) kann ich einfach die Tabelle 1-2-3-4 aufbauen. Wie würde ich das gleiche rückwärts aufbauen? Also möchte am Ende eine Tabelle der Form 4-3-2-1.

Es kann natürlich auch passieren, dass es für einige Datensätze keine weitere Ebene gibt und z.B. 4 = NULL ist.

Eine grobe Idee würde mir schon reichen. Ob es dann klappt oder in der Praxis komplizierter wird würde ich dann später im Detail sehen.

Danke.
 
Zuletzt bearbeitet:
Werbung:
Hm, etwas mehr Information? Was ist eine 1-2-3-4 Tabelle? Und was ist das Gegenteil davon?
Wunschergebnis auf Basis der Beispieldaten?
Mit Tabelle meinst du wahrscheinlich Abfrage?
 
Allgemeine Hinweise:
es gibt nicht nur left join, auch right join
Du kannst aber auch mit Leftjoin den Vergleich umkehren indem die join reihenfolge vertauscht wird.
 
Hier im Forum hat man leider nicht die Möglichkeit eine vernünftige Tabelle einzufügen oder einfach eine Datei hochzuladen. Daher immer die komischen Darstellungen für eine Tabelle :)

Aber genau, Right Join und vertauscht Id in ParentId suchen ist der gerade der Ansatz den ich versuche. Sollte klappen...
 
Hier im Forum hat man leider nicht die Möglichkeit eine vernünftige Tabelle ..
jein

Spalte Id - Spalte ParentId
1 - 2
2 - 3
3 - 4
Sieht nicht sexy aus, aber ist sonnenklar.
Tabelle 1-2-3-4 dagegen ist nicht sehr vielsagend.

Und ein schrumpeliger Text mit Fakten ist jedenfalls besser, als ein FHD Screenshot einer Excelliste oder so, ob man es hochladen kann oder nicht.
 
Ich versuche es das nächste mal besser abzubilden :)

Aber Right Join und vertauscht Id in ParentId suchen hat nicht ganz funktioniert. Für einige Datensätze gibt es am Ende NULL Fälle... für andere wieder nicht. Die NULL Fälle würde ich dann gerne überspringen und den nächsten vorhandenen Wert nehmen. Wie würde man das am besten in die Abfrage integrieren?
 
Hallo zusammen,

habe mal an einem Beispiel versucht, die Situation genauer darzustellen und was ich genau möchte:

upload_2021-8-2_8-51-27.png

Hoffe das hilft weiter.
 
Ist es vielleicht möglich vom Left Join aus startend die gewünschten Spalten zu ergänzen? Ich müsste irgendwie die Tiefe auslesen bzw. ermitteln wo die 0 Fälle anfangen und dann die Spalten mit 0, Spalten mit 1 etc. aufbauen. Weiß nicht ob das vielleicht einfacher ist?
 
ich wiederhole es noch einmal: Du suchst reklursive Abfragen.

Das Problem an Deinem Absatz mit den mehreren JOINs, mit denen Du dann je eine neue Spalte anklatscht, ist, daß Du vorher nicht wissen kannst, wie viele Ebenen da zusammenkommen. Rekursive Abfragen lösen exakt dieses Problem.
 
Wie würde denn so eine rekursive Abfrage genau aussehen? Gibt es vielleicht eine passende Seite wo das genauer beschrieben wird?
 
Werbung:
Google nach Pivot. Das Problem ist, generell gesprochen, daß die Anzahl der Spalten im Ergebniss zur Zeit, wo die Abfrage geplant wird, unbekannt ist. Das ist normalerweise ein NoGo in Datenbanken.
 
Zurück
Oben