Hallo Thomas!
Danke für deine Rückmeldung. Erstaunlicherweise gibt für Nested Set viele Lösungen
(Blattsuch, Kindersuche, Levelhöhe, Nachfolger, Vorfahren,ect) nur dieses Thema findet man nicht.
Es gibt zwar ein Buch:
Book 8.3.2 [Page 195] - XML data management: native XML and XML-enabled database systems
http://books.google.com/books?id=7LN...page&q&f=false
wo das Nested Sets für XML verwendet wird.
Auch hier Lösungsansätze:
http://www.artfulsoftware.com/mysqlb...qled1ch20.html
1) Die Idee mit UNION finde ich gut, sollte mit mySQL 5.0 klappen stehe aber mit der Query an
2) Habe noch etwas probiert, auf Basis Menge beschneiden (Lösungsansatz 2).
Code:
SELECT node.tag,follower.tag,node.lft,follower.lft,node.rgt,follower.rgt
FROM tree AS node,
tree AS follower
WHERE follower.rgt>=node.rgt
AND follower.rgt<
(SELECT MIN(s.lft) FROM tree AS s WHERE s.lft>node.rgt)
ORDER BY node.lft,follower.rgt
Schneide Menge der Nachfolger an der Stelle wo erstesmal ein höhere lft Wert steht als
der aktuelle Knoten (node). Alles was sich zwischen den aktuellen node und kleiner als s.lft befindet bleibt erhalten.
zB:
G[9,10] -> Nachfolger F,D,C,H,A
Erster Wert wo lft grösser als G rgt -> H[14,15]
Restmenge ist daher -> F,D,C
Problem: es sollte eine Ausnahmeregel für A gebe...H wird nicht ausgegeben.
Leider kann ich nicht mit JSON arbeiten, da die Verarbeiten in XSLT erfolgt. MySQL ist für mein Projekt aus anderen Gründen sehr gut geeignet....
vielleicht klappts ja doch:)
grüsse helmut