André Mantz: Komplizierte Abfrage?!?

Beitrag lesen

Hallo,

ich habe ein kleines Problem mit einer MySQL-Tabelle.

In der Tabelle stehen Nachrichten (interne Mails von Usern innerhalb der Anwendung). Die Tabelle sieht vereinfacht so aus:

+---------+---------+----------+
| von     | an      | Mailtext |
+---------+---------+----------+
| Müller  | Maier   | ...      |
| Maier   | Schmitz | ...      |
| Schmitz | Maier   | ...      |
| Bauer   | Müller  | ...      |
| ...     | ...     | ...      |

Ich brauche nun eine Abfrage, die für jeden Benutzer die Summe seiner gesendeten und empfangenen Nachrichten ermittelt.

Das gewünschte Ergebnis sollte also so aussehen:

+----------+--------+
| Benutzer | Anzahl |
+----------+--------+
| Bauer    |   1    |
| Maier    |   3    |
| Müller   |   2    |
| Schmitz  |   2    |
| ...      |  ...   |

Ich habe es bisher nicht hinbekommen. Mein bisher bester Ansatz sieht so aus:

SELECT von AS benutzer, count(*) as anzahl
     FROM tabelle
          GROUP BY von
UNION ALL
SELECT an  AS benutzer, count(*) as anzahl
     FROM tabelle
          GROUP BY an
ORDER BY benutzer

allerdings erhalte ich dann immer zwei Datensätze pro Benutzer, einen mit der Anzahl seiner gesendeten und einen mit der Anzahl seiner empfangenen Nachrichten. Ich kriege kein GROUP BY auf das Gesamtergebnis hin. Geht das überhaupt, oder bin ich mit meinem Lösungsansatz insgesamt auf dem Holzweg?

Danke für eure Hilfe.

Gruß, André