Hallo!
Angenommen ich möchte die Posts aller User in einem phpBB Forum nachzählen; wie mach eich das mit einem einzigen
SQL Query?
Ich hab jetzt nicht vor das zu machen, sondern will nur was machen, das zufällig die selbe Datenstruktur hat.
Mein Ansatz:
SQL-Code:
UPDATE phpbb_users u
SET users_posts = (
SELECT COUNT(post_id)
FROM phpbb_posts c
WHERE c.poster_id = u.user_id
)
WHERE c.user_id = u.user_id;
Aber logischerweise geht da nichts.
Achja, was ich vergessen habe: Es kenn nicht alle die
DB-Struktur von phpBB.
Es gibt eine User-Tabelle (phpbb_users) mit u.a. den Spalten user_id und user_posts, wo jeder User genau einen Datensatz hat. Dann gibts da noch eine (genaugenommen zwei, aber egal) Tabellen mit den Posts (phpbb_posts). Auch hier der Primary-Key namens post_id und dann noch ein Feld poster_id der der User-ID entspricht. Hier hat jeder Post einen Datensatz. Ich will jetzt mittels
SQL-Code:
SELECT COUNT(post_id)
FROM phpbb_posts
WHERE poster_id = x;
die Posts eines einzelnen Users zählen.
(Eigentlich alles logisch, aber nunja...)
Grüße
Faux