Melvin Cowznofski: Liste mit Kategorien und Unterkategorien (2. Lösungsidee)

Beitrag lesen

Hallo tinita!

SELECT l.name AS Name, l.url AS URL, c.name AS Unterkategorie, c2.name AS Kategorie

FROM links AS l
INNER JOIN categories AS c ON c.id = l.category_id
INNER JOIN categories AS c1 ON c.parent_id = c2.id /* hier ergänzt */
ORDER BY l.id ASC

  
Danke für Deine Antwort! Also so funktioniert es nicht, weil c2 gibt es ja gar nicht. (Das ist aber meine Schuld, weil ich sehe grade, ich habe das in meinem letzten Posting schon falsch geschrieben.) Ändert man aber hier die c2 in c1 um, dann ergibt das  
  
~~~sql
SELECT l.name AS Name, l.url AS URL, c.name AS Unterkategorie, c1.name AS Kategorie  
FROM links AS l  
INNER JOIN categories AS c ON c.id = l.category_id  
INNER JOIN categories AS c1 ON c.parent_id = c1.id  
ORDER BY l.id ASC

Und dies liefert nun das exakt gewünschte Ergebnis. Ich tue mir momentan nur noch etwas schwer, die Joins "einzudeutschen".

Die erste Join-Anweisung sagt: "Zusätzlich zu der in der FROM-Anweisung stehenden Tabelle 'links' nimm jetzt auch noch die Tabelle 'categories' dazu.". In der SELECT-Anweisung steht, dass aus dieser Tabelle die Spalte 'name' verwendet werden soll. Und die ON-Anweisung des ersten JOINS sagt:"Nimm für 'name' jene Zeile, in der die ID der Zahl im 'category_id' Feld der Tabelle 'links' entspricht.

Die zweite Join-Anweisung sagt: "Zusätzlich zu der in der FROM-Anweisung stehenden Tabelle 'links' nimm jetzt für einen witeren Wert _nochmal_ die Tabelle 'categories' dazu.". In der SELECT-Anweisung steht, dass aus dieser Tabelle _wieder_ die Spalte 'name' verwendet werden soll. Und die ON-Anweisung des zweiten JOINS sagt:"Nimm für 'name' jene Zeile, in der die ID der Zahl im 'parent_id' Feld der Tabelle 'categories' entspricht.

Ist das so richtig? Etwas verwirrend für mich, aber ich denke, langsam blicke ich durch.

Mit lieben Grüßen

Melvin Cowznofski

--

Melvin Cowznofski
What – me worry?