MySQL Abfrage für einen Webshop



  • Hallo, ich habe eine Frage bezüglich einer Query.
    Ich habe drei Tabellen.
    ∞ artikel
    ∞ oberpunkte
    ∞ unterpunkte

    Ich möchte in HTML einen Block ausgeben der so aussieht:

    -----------------------
    + Textilbäume (5)     +
    -----------------------
    + Bambus (10)         +
    + Buchsbaum (8)       +
    + Palmen (6)          +
    + Sonstige Bäume (20) +
    -----------------------
    
    Abstrakt:
    
    --------------------------------------------------------------
    + Name Oberpunkt (Anzahl Unterpunkte)                        +
    --------------------------------------------------------------
    + Name 1. Unterpunkt (Artikel die zum 1. Unterpunkt gehören) +
    + Name 2. Unterpunkt (Artikel die zum 2. Unterpunkt gehören) +
    + Name 3. Unterpunkt (Artikel die zum 3. Unterpunkt gehören) +
    + Name 4. Unterpunkt (Artikel die zum 4. Unterpunkt gehören) +
    --------------------------------------------------------------
    

    In der Tabelle oberpunkte habe ich folgendes:
    id, op_name
    Beispiel: 1, Textilbäume

    In der Tabelle unterpunkte habe ich folgendes:
    id, teil_von, up_name
    Beispiel: 1, 1, Bambus
    Anmerkung: teil_von ist der fremdschlüssel der tabelle oberpunkte und gibt an zu welchem Oberpunkt dieser Unterpunkt gehört.

    In der Tabelle artikel habe ich einen wert kat_id.
    Dieser Wert ist der Fremdschlüssel von unterpunkte.
    Beispielsweise tragen alle Artikel die ein Bambus sind, die kat_id 1.

    Jetzt meine Frage:
    Gibt es eine Möglichkeit einen Query aufzubauen, der mir folgende Werte gibt, zu machen:

    Name Oberpunkt, Anzahl unterpunkte.
    Liste der Oberpunkte mit Anzahl aller artikel je unterpunkt.

    Danke im Voraus



  • Versuch es mal so irgendwie (ungetestet):

    SELECT unterpunkte.up_name, COUNT(*) FROM unterpunkte LEFT JOIN artikel ON unterpunkte.id = artikel.kat_id GROUP BY unterpunkte.id;
    


  • Wow danke Flenders! 🙂 Läuft wie geschmiert.


Anmelden zum Antworten