Hallo,
mit COUNT()
Summiert man nicht, man zählt. Du
möchtest wahrscheinlich eher SUM()
verwenden,
wenn du "summieren" willst?
Was genau soll denn die Summe denn umfassen? Alle Vorkommen von
Tabelle1.Attrib1A in Tabelle2.Attrib2C _und_ Tabelle2.Attrib2E
_und_ Tabelle2.Attrib2G?
Ganz banal kannst du ja einfach 3 Abfragen schreiben und dann die
jeweiligen Ergebnisse von Hand zusammenzählen. Du kannst aber auch
unter Verwendung von Subselects und dem UNION
Operator Zwischenaggregationen vornehmen. Also z.b. so:
SELECT Attrib1A, SUM(Attrib2Wert)
FROM
(SELECT Tabelle1.Attrib1A, Count(Tabelle2.Attrib2C) AS Attrib2Wert
FROM Tabelle1
INNER JOIN Tabelle 2 ON Tabelle1.Attrib1A = Tabelle2.Attrib2C
GROUP BY Tabelle1.Attrib1A
UNION
SELECT Tabelle1.Attrib1A, Count(Tabelle2.Attrib2E) AS Attrib2Wert
FROM Tabelle1
INNER JOIN Tabelle 2 ON Tabelle1.Attrib1A = Tabelle2.Attrib2E
GROUP BY Tabelle1.Attrib1A
UNION
SELECT Tabelle1.Attrib1A, Count(Tabelle2.Attrib2G) AS Attrib2Wert
FROM Tabelle1
INNER JOIN Tabelle 2 ON Tabelle1.Attrib1A = Tabelle2.Attrib2G
GROUP BY Tabelle1.Attrib1A)
GROUP BY Attrib1A
oder
SELECT Tabelle1.Attrib1A, SUM(Attrib2Wert)
FROM Tabelle1
INNER JOIN
(SELECT Attrib2C AS Attrib, Count(Attrib2C) AS Attrib2Wert
FROM Tabelle2
GROUP BY Tabelle2.Attrib2C
UNION
SELECT Attrib2E AS Attrib, Count(Attrib2E) AS Attrib2Wert
FROM Tabelle2
GROUP BY Attrib2E
UNION
SELECT Attrib2G AS Attrib, Count(Attrib2G) AS Attrib2Wert
FROM Tabelle2
GROUP BY Attrib2G) AS countErgebnisse
ON Tabelle1.Attrib1A = countErgebnisse.Attrib
GROUP BY Tabelle1.Attrib1A
Das Code-Schnipsel ist ungetestet und ich garantiere nicht, dass MySQL so etwas kann ;)
HTH,
Frank