Hi,
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?
Das sollte doch n.level + 1 sein.
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)
[O o ostern ...](http://ostereier.andreas-waechter.de/)
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.