我正在制作留言板并尝试构建查询。我的数据库结构如下:
表名:表行、表行
类别:id,名称
主题:id,categoryid
帖子:id,topicid
在主页上,我想列出每个类别以及每个类别中的主题数量和帖子数量。我查看了一些使用多个连接的查询,但在将语法应用于我的情况时遇到了麻烦。
这是我想出的:
SELECT `categories`.`id`, `categories`.`name`,
SELECT COUNT(DISTINCT `topics`.`id`)
FROM `topics`
WHERE `topics`.`categoryid` = `categories`.`id`
AS `numtopics`,
SELECT COUNT(DISTINCT `posts`.`id`)
FROM `posts`
WHERE `posts`topicid` = `topics`.`id`
AS `numposts`
FROM `categories`
JOIN `topics` ON `categories`.`id` = `topics`.`categoryid`
JOIN `posts` ON `topics`.`id` = `posts`.`topicid`
;
当我尝试根据 topicid 计算帖子数量然后将其与第一个连接创建的表连接时,我开始感到困惑。有可能做我正在做的事情吗?如果是这样,我是否正确地处理它?