Oberkategorien mit der Anzahl der Unterkategorien auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Oberkategorien mit der Anzahl der Unterkategorien auslesen

    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 :

    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
    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).
    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
    Ich komm nicht drauf wie ich das machen soll....

    kann mir jemand dabei helfen ?

    Danke im voraus
    ................
    .:@R1U5::.
    :::::::::::::::::

  • #2
    Hat sich erledigt,
    habs doch hinbekommen

    Hier der Code :

    Code:
    SELECT p.id, p.name, count( c.id )  AS anzahl
    FROM warengruppen p
    LEFT OUTER JOIN warengruppen c ON c.parent_id = p.id
    WHERE p.parent_id = 0
    GROUP  BY p.name
    ORDER  BY p.name
    vielleicht kann da ja was verbessert werden...

    mfg D@R1U5
    ................
    .:@R1U5::.
    :::::::::::::::::

    Kommentar

    Lädt...
    X