MySQL - LEFT JOIN和COUNT()

Iva*_*van 8 mysql count left-join

我有3张桌子:

  1. 论坛

id,名称,描述

  1. 线程

thread_id,forum_id,user_id,标题,内容,视图

  1. 帖子

post_id,thread_id,author_id,内容,日期

我想要做的是获取论坛中的所有主题,并获得每个主题的帖子计数.所以我得到每个线程(WHERE forum_id = what)然后我左键加入表格帖子,以便计算结果.但有些东西不起作用.这是我的查询:

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
  WHERE
     t.forum_id = $this->forumID
Run Code Online (Sandbox Code Playgroud)

此查询仅显示(我认为)有任何帖子的线程.我也尝试使用GROUP BY语句,但它使MySQL出错......

我怎么解决这个问题?

-----------编辑: 我尝试添加GROUP BY t.thread_id,但是,正如我之前所说,MySQL错误:

您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在第15行的'WHERE t.forum_id = 2'附近使用正确的语法

完整查询:

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
Run Code Online (Sandbox Code Playgroud)

编辑2:

我的不好,我把GROUP BY语句放在了不应该的地方.它现在已经解决了.

And*_*eKR 10

GROUP BY是正确的方法,所以只需添加: GROUP BY t.thread_id