Hallo
Ich suche schon länger, vielleich hat jemand von euch eine Idee oder Hinweis.
Meine Datenstruktur ist als Nested Sets abgebildet. Ich würde pro Element
den "bread crumbs" benötigen, allerdings (hier ist das Problem) nur den Subbaum.
Beispielbaum
Bisherige Lösung
liefert:
A A
B B,A
C C,A
D D,C,A
E E,D,C,A
F F,D,C,A
G G,F,D,C,A
H H,A
Ich benötige aber nur den Subbaum
A A
B B
C C
D D,C
E E
F F,D,C
G G,F,D,C
H H,A
zum testen:
Der Sinn dahinter liegt darin aus den NSets - XML Strukturen zu bauen, die "bread crumbs" dienen zum schliessen der XML Tags.
Vielen Dank voraus
Ich suche schon länger, vielleich hat jemand von euch eine Idee oder Hinweis.
Meine Datenstruktur ist als Nested Sets abgebildet. Ich würde pro Element
den "bread crumbs" benötigen, allerdings (hier ist das Problem) nur den Subbaum.
Beispielbaum
Code:
A[01,16] B[02,03] C[04,13] H[14,15] D[05,12] E[06,07] F[08,11] G[09,10]
Bisherige Lösung
Code:
SELECT n.name, group_concat(p.name ORDER BY p.rgt) FROM tree n, tree p WHERE n.lft BETWEEN p.lft AND p.rgt GROUP BY n.id ORDER BY n.lft;
A A
B B,A
C C,A
D D,C,A
E E,D,C,A
F F,D,C,A
G G,F,D,C,A
H H,A
Ich benötige aber nur den Subbaum
A A
B B
C C
D D,C
E E
F F,D,C
G G,F,D,C
H H,A
zum testen:
Code:
CREATE TABLE IF NOT EXISTS `tree` ( `id` int(11) NOT NULL, `name` varchar(100) NOT NULL, `lft` int(11) NOT NULL, `rgt` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Daten für Tabelle `tree` -- INSERT INTO `tree` (`id`, `name`, `lft`, `rgt`) VALUES (1, 'A', 1, 16), (2, 'B', 2, 3), (3, 'C', 4, 13), (4, 'D', 5, 12), (5, 'E', 6, 7), (6, 'F', 8, 11), (7, 'G', 9, 10), (8, 'H', 14, 15);
Der Sinn dahinter liegt darin aus den NSets - XML Strukturen zu bauen, die "bread crumbs" dienen zum schliessen der XML Tags.
Vielen Dank voraus