Iva*_*van 8 mysql count left-join
我有3张桌子:
id,名称,描述
thread_id,forum_id,user_id,标题,内容,视图
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语句放在了不应该的地方.它现在已经解决了.
| 归档时间: |
|
| 查看次数: |
12385 次 |
| 最近记录: |