Announcement

Collapse
No announcement yet.

Nested Sets - bread crumbs

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nested Sets - bread crumbs

    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
    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;
    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:
    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
Working...
X