Hallo ihr lieben Leute,
vielleicht kann mir mal jemand fix auf die Sprünge helfen. Ich habe in eine DB eine simple Baumstruktur:
+-----------------------------------+ | sohn | vater | aktiv | +-----------------------------------+ | 1 | 0 | 1 | | 2 | 1 | 1 | | 3 | 2 | 0 | | 4 | 2 | 1 | | 5 | 3 | 1 | | 6 | 3 | 1 | ....
Ich will jetzt alle aktiven sohn - Vater - Beziehungen haben, bei denen nicht nur die aktuelle Beziehung aktiv ist, sondern alle Väter bis obenhin. am konkreten Beispiel muss also sowss rauskommen:
1 -> 0 2 -> 1 4 -> 2
Es dürfen NICHT erscheinen:
3 -> 2 (das ist einfach) 5 -> 3 6 -> 3
wie erschlage ich das in möglichst wenigen Schritten? Die Sache mit den Nested Sets habe ich mir schon angeschaut, das triffts hier aber nicht ganz. Und wie immer, sind die Daten schon da und natürlich recht umfangreich und verschachtelt.
Muss ich wirklich was rekursives bauen oder gibts dafür 'ne prima Logik:
Gibt mir alle Vater-Sohn-Beziehungen aus, die in Ihrem Stammbaum nicht irgendwo inaktiv sind.
Mit freundlichen Grüßen
Jens Puruckherr