我目前(试图)开发一个论坛。现在我遇到了一个小障碍。我的数据库中有四个表;“类别”、“论坛”、“主题”和“回复”。他们都有一个id、一个父id和一个名字。
我现在的问题是我应该如何存储和获取每个类别和论坛的主题和回复的数量。一开始我想保存每个分类和论坛中的所有主题和回复,以及保存每个主题中的所有回复。
但这是我宁愿避免看到的事情,因为我必须为每个回复进行 1 次插入和 3 次更新;1 到类别,1 到论坛,1 到主题,最后是回复本身,插入。
所以相反,我想是否有可能(以及如何)使用 COUNT、GROUP BY 和 INNER JOIN 进行查询
沿线的东西
SELECT *
FROM `categories`
JOIN (COUNT ( * )
FROM `topics`
GROUP BY `parent_id`
WHERE `parent_id` = `categories`.`id`) as `amount_of_topics`
JOIN (COUNT ( * )
FROM `topics`
GROUP BY `parent_id`
WHERE `parent_id` = `topics`.`id`) as `amount_of_replies`
只是我没有按照我想要的方式工作。
因此,要获取特定论坛的所有回复并计算它们,回复和论坛得到的连接是回复的 parent_id 属于一个主题,而该主题的 parent_id 属于一个论坛。