[…] das ich das mit
HAVING
(3) lösen kann, doch ich bekomme nur die Fehlermeldung Unknown column 'a.cat' in 'having clause'
SELECT o.name,
COUNT(p.id)-1 AS level,
a.titel <----------------------------------------------1
FROM
tree AS n,
tree AS p,
tree AS o,
daten AS a <----------------------------------------------2
WHERE o.lft BETWEEN p.lft AND p.rgt
AND o.lft BETWEEN n.lft AND n.rgt
AND n.id = 6
GROUP BY o.lft
HAVING level = a.kategorie <----------------------------------------------3
ORDER BY o.lft
Ich gehe mal davon aus, dass du MySQL verwendest, ansonsten hast du schon bei `a.titel`{:.language-sql} (1) einen Fehler, weil alles was selektiert wird im `GROUP BY`{:.language-sql} erscheinen muss bei vielen anderen SQL-Dialekten.
(Solltest du vielleicht trotzdem machen weil sonst irgendein a.titel genommen wird)
Ansonsten kann ich mir nur vorstellen, dass `HAVING`{:.language-sql} (3) a.cat bzw. a.kategorie 'rum zickt, weil nicht auch nach a.cat gruppiert wird, schließlich hängen GROUP BY und HAVING zusammen.
MfG
bubble
PS: Alles nur reine Vermuting, ich hab mich bis dato weder mit Nested Sets beschäftigt, noch brauchte ich HAVING.
PPS: left mit lft, bzw. right mit rgt abzukürzen ist mMn. eher kontraproduktiv, es verschlechtert die Lesbarkeit recht stark, dafür dass du nur 1 bzw. 2 Zeichen pro Wort einsparst.
--
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye