Ich habe 3 Tabellen:MySQL - LEFT JOIN und COUNT()
- Foren
id, Name, Beschreibung
- Gewinde
thread_id, forum_id, user_id, Titel, Inhalt, Ansichten
- Beiträge
post_id, thread_id, author_id, Inhalt, Datum
Was ich tun möchte, ist, alle Threads in einem Forum zu bekommen, und die Post-Anzahl von jedem Thread zu bekommen. Also bekomme ich jeden Thread (WHERE forum_id = was auch immer) und dann LINKE ich JOIN mit den Tabellen-Posts also um die Ergebnisse zu zählen. Aber etwas funktioniert nicht. Hier ist meine Abfrage:
Diese Abfrage wird nur zeigen (denke ich) die Threads, die Post auf sie haben. Ich habe auch versucht, die GROUP BY-Anweisung, aber es macht MySQL Fehler ...
Wie kann ich das lösen?
----------- EDIT: Ich habe versucht GROUP BY t.thread_id fügte aber hinzu, wie ich schon sagte, MySQL Fehler:
Sie haben einen Fehler in Ihre SQL-Syntax; Sie in die Bedienungsanleitung zu Ihrer MySQL-Server-Version für die richtige Syntax entspricht in der Nähe zu verwenden 'WHERE t.forum_id = 2' in Zeile 15
Voll query:
SELECT t.*, u.nick, COUNT(p.post_id) AS postcount
FROM
threads t
LEFT JOIN
users u
ON
u.id = t.user_id
LEFT JOIN
posts p
ON
p.thread_id = t.thread_id
GROUP BY
t.thread_id
WHERE
t.forum_id = $this->forumID
EDIT 2:
Meine schlechte, ich habe die GROUP BY-Anweisung, wo es nicht sein sollte. Es ist jetzt gelöst.