Kathi: Nested Sets Ebenen Problem, Having???

Beitrag lesen

Ich habe folgende Abfrage in der der Ast mit der ID 4 ausgegeben wird (inklusive der ID 4)

SELECT o. * , COUNT( p.id ) -1 AS level  
FROM menu AS n, menu AS p, menu AS o  
WHERE o.lft  
BETWEEN p.lft  
AND p.rgt  
AND o.lft  
BETWEEN n.lft  
AND n.rgt  
AND n.id =4  
GROUP BY o.lft  
ORDER BY o.lft

Dann wird folgendes ausgegeben

id ! name ! lft ! rgt ! level

4 Menu    1 12 23 1
205 Ebene 2 13 14 2
206 Ebene 2 15 20 2
208 Ebene 3 16 17 3
209 Ebene 3 18 19 3
207 Ebene 2 21 22 2

Mein Wunschergebnis  ist nun das immer nur die Einträge die eine Ebene unterhalb der aufgerufenen ID sind sind ausgegeben werden, also wenn wie in meinem Beispiel die ID 4 abgefragt wird, soll

205 Ebene 2 13 14 2
206 Ebene 2 15 20 2
207 Ebene 2 21 22 2

oder wenn ID 206 abgefragt wird, dann eben

208 Ebene 3 16 17 3
209 Ebene 3 18 19 3

Mein Ansatz wäre es mit HAVING Level  =2 zu versuchen, aber wie bekomme ich den jeweiligen Level, der über der abgefragten ID ist heraus?

Kathi