Axel Richter: MySQL: Count über zwei Tables

Beitrag lesen

Hallo,

Du musst die beiden Tabellen verbinden. SQL benutzt dazu JOINs.
In diese Richtung hab ich auch schon einige Versuche unternommen, habe allerdings kein vernüftiges Ergebnis erzielt.

Ja, jetzt wo Du es genauer beschreibst, sehe ich es auch ;-)). Das geht nicht mit JOINs. Hier müssen zunächst die Datensätze beider Tabellen in eine Datensatzmenge kommen (UNION). Diese Datensatzenge muss dann nach Autor gruppiert werden.

Tabelle:

Threads:
      id
      autor
      article
      etc.

Posts:
      id
      thread_id
      autor
      article
      etc.

Wie gesagt möchte ich dann halt einfach als Statistik ausgeben, wie viele Einträge der Autor hat.

SELECT autor, Count(*) AS Anzahl
FROM (SELECT autor FROM Threads UNION ALL SELECT autor FROM Posts) AS ThreadsPosts
GROUP BY autor;

Dafür muss Dein MySQL Subqueries unterstützen (Starting with version 4.1, MySQL). Sonst brauchst Du wirklich zwei Queries, deren Count Du dann mit einer Programmiersprache zusammenzählst.

viele Grüße

Axel