【发布时间】:2011-05-09 15:16:16
【问题描述】:
我正在尝试建立一个由三个表格组成的论坛。一个论坛表、一个主题表和一个帖子表。
在显示所有论坛的页面上,我希望它显示每个论坛的主题数量,以及该论坛中的帖子数量。很标准的东西。但是,我在使用 MySQL 查询时遇到了一些问题。这是我正在使用的:
SELECT f.* , COUNT(t.topic_id) AS topics, COUNT(p.post_id) AS posts
FROM forums AS f
LEFT JOIN forums_topics AS t ON f.forum = t.forum_id
LEFT JOIN forums_posts AS p ON t.topic_id = p.topic_id
GROUP BY f.forum
这将为每个论坛返回一行,但主题计数和帖子计数返回彼此相等。帖子数是正确的,所以问题出在主题数上。
表格的结构是forums_posts 包含它所属主题的id 号,它不包含它所属论坛的id 号。 forums_topics 表包含其所属论坛的 id 号。
如何更正我的查询?如果我在 forums_posts 表中添加帖子所属的 forum_id 会更好吗?
感谢您的建议。
【问题讨论】: