Hallo,
ich habe eine Tabelle namens warengruppen die so aussieht :
id parent_id name
-------------------------------
1 0 CPU
2 1 AMD
3 1 Intel
4 1 Kühler
5 0 Drucker
6 5 Tintenstrahldrucker
7 0 Eingabegeräte
8 7 Mäuse
9 7 Tastaturen
10 0 Arbeitsspeicher
11 10 SDRAM
12 10 DDRAM
13 0 Gehäuse
14 0 Komplett PCs
15 0 Laufwerke
16 15 CD-ROM
17 15 CD-Writer
18 15 DVD-ROM
19 15 DVD-Writer
20 15 Festplatten
21 15 Floppy
22 0 Mainboards
23 22 AMD Mainboards
24 22 Intel Mainboards
25 0 Medien
26 25 CD-R
27 25 CD-RW
Nun möchte ich alle Oberkategorien (mit parent_id = 0)
auslesen und die dazugehörige anzahl der Unterkategorien.
Ich habe das bis jetzt so hinbekommen :
Es werden die Oberkategorien mit der Anzahl der Unterkategorien ausgegeben. Aber nicht die Oberkategorien, die keine Unterkategorien haben.
Ich habe es schon so versucht, Zeigt mir zwar alle oberkategorien an, die Anzahl ist aber falsch (zählt alle Kategorien).
Ich komm nicht drauf wie ich das machen soll....
kann mir jemand dabei helfen ?
Danke im voraus
ich habe eine Tabelle namens warengruppen die so aussieht :
id parent_id name
-------------------------------
1 0 CPU
2 1 AMD
3 1 Intel
4 1 Kühler
5 0 Drucker
6 5 Tintenstrahldrucker
7 0 Eingabegeräte
8 7 Mäuse
9 7 Tastaturen
10 0 Arbeitsspeicher
11 10 SDRAM
12 10 DDRAM
13 0 Gehäuse
14 0 Komplett PCs
15 0 Laufwerke
16 15 CD-ROM
17 15 CD-Writer
18 15 DVD-ROM
19 15 DVD-Writer
20 15 Festplatten
21 15 Floppy
22 0 Mainboards
23 22 AMD Mainboards
24 22 Intel Mainboards
25 0 Medien
26 25 CD-R
27 25 CD-RW
Nun möchte ich alle Oberkategorien (mit parent_id = 0)
auslesen und die dazugehörige anzahl der Unterkategorien.
Ich habe das bis jetzt so hinbekommen :
Code:
SELECT p.id, p.name, count(c.id) AS anzahl FROM warengruppen p INNER JOIN warengruppen c ON c.parent_id = p.id GROUP BY p.name ORDER BY p.name
Ich habe es schon so versucht, Zeigt mir zwar alle oberkategorien an, die Anzahl ist aber falsch (zählt alle Kategorien).
Code:
SELECT p.id, p.name, count(c.id) AS anzahl FROM warengruppen p INNER JOIN warengruppen c ON p.parent_id = 0 GROUP BY p.name ORDER BY p.name
kann mir jemand dabei helfen ?
Danke im voraus
Kommentar