Einzelnen Beitrag anzeigen

ChEeTaH

Registriert seit: 12. Jan 2009
49 Beiträge
 
Delphi XE2 Architect
 
#1

Doppelte Tabelle in GROUP BY

  Alt 3. Jul 2012, 21:36
Datenbank: MySql • Version: - • Zugriff über: -
Hallo,

ich habe einen Query über 4 Tabellen, wobei ich aus 2 Tabellen mit COUNT eine Gesamtanzahl berechne und aus einer den AVG aus verschiedenen Werten.
Dabei sind die COUNT's aus jeweils 2 Tabellen, wobei sie eine Verbindungstabelle _zusammen_ besitzen, d.h. sie haben diese Tabelle gemeinsam, bilden ihre Querys aber unabhängig voneinander.

wie kann ich das nun in die GROUP BY Klausel packen, wenn ich diese 3 Tabellen habe, 2 davon aber gleich sind? Als Ergebnis dieses Querys bekomme ich eine viel zu hohe COUNT zahl raus, ich vermute, ein Group by wird nicht richtig angewendet. Bisher hab ich nur die 2 unterschiedlichen Tabellen in der Klausel.

artikel_benutzer_wertung.vote müsste 2mal vorkommen

Code:
SELECT
    artikel.id AS ARTIKELID,
    artikel.name AS ARTIKELNAME,
    artikel_kategorien.name AS artikel_kategorien_name,
    artikel_benutzer.artikel_id AS artikel_benutzer_artikel_id,
    COUNT(artikel_benutzer.benutzer_id) AS `BENUTZERCOUNT`,
    artikel_benutzer_wertung.artikel_id AS artikel_benutzer_wertung_artikel_id,
    COUNT(artikel_benutzer_wertung.vote) AS `VOTECOUNT`,
    artikel_benutzer_wertung.product_id,
    AVG(artikel_benutzer_wertung.vote) AS `AVGVOTE`
FROM
    artikel,
    artikel_kategorien,
    artikel_benutzer,
    artikel_benutzer_wertung
WHERE
    artikel_benutzer.type != 0 AND artikel.artikel_kategorie_id = 15 AND
    artikel_benutzer.artikel_id = artikel.id AND artikel_benutzer_wertung.artikel_id = artikel.id AND artikel.artikel_kategorie_id = artikel_kategorie.id
GROUP BY artikel_benutzer.artikel_id , artikel_benutzer_wertung.artikel_id

Geändert von ChEeTaH ( 3. Jul 2012 um 21:41 Uhr)
  Mit Zitat antworten Zitat