Hi!
id ! name ! links ! rechts
1 ! Lebensmittel ! 1 ! 14
2 ! Gemüse ! 2 ! 11
4 ! Broccoli ! 3 ! 10
7 ! Gelbkohl ! 5 ! 4
6 ! Rotkohl ! 7 ! 6
5 ! Grünkohl ! 9 ! 8
3 ! Obst ! 12 ! 13
8 ! Auto ! 15 ! 20
10! Opel ! 16 ! 17
9 ! Mercedes ! 18 ! 19
Sieht falsch aus. Links ist bei Nested Sets immer kleiner als rechts. Zudem ist der Ampelkohl wohl eher kein Broccoli.
Nun möchte ich diesen in ausgeben, aber mit allen Vorläufern, so etwa:
Lebensmittel - Gemüse - Broccoli
Mit Nested Sets lassen sich mit einer Anfrage für _einzelne_ Elemente alle Vorfahren ermitteln. Um für _alle_ Elemente alle Vorfahren zu ermitteln, musst du für alle Elemente einzeln die Vorfahren-Query stellen oder im abfragenden Programm einmalig alle interessierenden Elemente abfragen, daraus einen Baum bilden und den dann rekursiv durchlaufen.
Mit SQL-Mitteln allein fällt mir nur die Erstellung einer Stored Function ein.
Lo!