Announcement

Collapse
No announcement yet.

2 x JOIN und 2 x COUNT() möglich?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2 x JOIN und 2 x COUNT() möglich?

    Hallo,

    ich habe ein Problem mit einer Abfrage bzw. weis nicht ob das was ich mir wünsche überhaupt möglich ist. Ich beschreibe mal ein vereinfachtes Beispiel:

    Es gibt 3 Tabellen:

    produkte
    id
    name
    hersteller_id

    kategorien
    id
    name

    produkte2kategorien
    produkt_id
    kategorie_id

    Die Tabelle "produkte" ist über die Tabelle "produkte2kategorien" n-n mit der Tabelle "kategorien" verknüpft.

    Ich suche nun eine Möglichkeit in einem Query alle Kategorien zu ermitteln mit der Anzahl der zugehörigen Produkte und Hersteller. Nur eines davon wäre ohne Probleme mit einem LEFT JOIN zu bewerkstelligen. Wie macht man das aber in diesem Fall?

    Als Beispiel mein Ansatz wie ich alle Kategorien und die Anzahl der Produkte ermittle:

    Code:
    SELECT kategorien.name AS kategorie,
           COUNT(products_prodtypes.product_id) AS anzahl_produkte
    FROM kategorien
    LEFT JOIN produkte2kategorien ON (produkte2kategorien.kategorie_id = kategorien.id)
    GROUP BY kategorie.id
    ORDER BY kategorien.name
    Nun bräuchte ich noch ein zweites COUNT() über die Anzahl der Hersteller. Ist das möglich oder muss ich hier zwei Queries absetzen?

    Das Ganze muss leider auf einem MySQL-Server 4.0 laufen, somit sind Subqueries nicht möglich.

    Bin für jeden Hinweis dankbar.

    Danke,
    MF

  • #2
    Hi!

    In 4.0 geht das nur über den Umweg eines temporary tables.

    1. Create temporary table "AnzahlHersteller" mit der Anzahl der Hersteller in den Kategorien.

    2. Dein Select, wobei Du über einen weiteren JOIN die "AnzahlHersteller" über die KategorieID einbindest.

    Schon fertig!

    Viel Spaß!

    Comment

    Working...
    X