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