Ole: Probleme mit SQL (Nested Sets)

Beitrag lesen

Hi

wie die ÜBerschrift schon vermuten läßt, habe ich ein paar Probleme mit Nestet Sets.

Ich versuche grade das oben verlinkte Tutorial an meine Bedürfnisse anzupassen und merke dabei, daß ich außer SELECT, INSERT, UPDATE und DELETE noch nicht allzuviel mit SQL gemacht habe unter ich nicht alles verstehe was hier passiert.

Das erstellen der Tabelle war kein Problem und mit diesem Code habe ich mein Rootposting erzeugt:

  
LOCK TABLES kategorien WRITE;  
  
INSERT INTO kategorien ( kat_name,kat_titel,kat_link,kat_position,kat_not_kat,kat_frei, lft, rgt )  
            VALUES ( 'Start','Start','index.cfm','','0','1',1,2 );  
  
UPDATE kategorien  
   SET root_id = LAST_INSERT_ID()  
 WHERE node_id = LAST_INSERT_ID();  
  
UNLOCK TABLES;  

Soweit, sogut. Was ich allerdings nicht verstehe, ist die Syntax der Query zum Abrufen der Tabelle:

  
SELECT node1.payload,  
         COUNT(*) AS level  
    FROM node AS node1,  
         node AS node2  
   WHERE node1.root_id = 1  
     AND node2.root_id = 1  
     AND node1.lft BETWEEN node2.lft AND node2.rgt  
GROUP BY node1.LFT;  

Meine Tabelle heißt, anders als im Tutorial, nicht "node" sondern "kategorien". Also muß ich hier eben "node" durch "kategorien" ersetzen.

Aber: Wie kann "node1.payload" selektiert werden, wenn node1 garnicht definiert ist? Oder wird erst "node AS node1" abgearbeitet, so daß node1 an dieser Stelle doch schon definiert ist?

Meine SQL-Bücher haben mich leider nicht weiter gebracht. Vieleicht kann mir jemand die Query ja so erklären, daß ich sie auch verstehe :)

danke
Ole
(8-)>

--
Stickstoff eignet sich nicht für Handarbeiten.