我正在尝试为学校项目编写一个论坛,我正在尝试提出一个查询,它将为我提供所有论坛名称+计算每个论坛的帖子数量。
这个想法很简单:一个表包含所有论坛的列表(论坛ID,论坛名称,论坛描述),另一个表包含所有主题(主题ID,论坛ID(它所属的论坛),主题)标题)。 我需要的是一个sql查询,它将从论坛中执行select *并且还为主题表中与特定论坛ID相对应的记录添加了另一列。
我的论坛结构:
CREATE TABLE IF NOT EXISTS `forums` (
`forum_id` int(12) NOT NULL AUTO_INCREMENT,
`forum_name` varchar(60) NOT NULL,
`forum_description` text NOT NULL,
PRIMARY KEY (`forum_id`),
UNIQUE KEY `forum_name` (`forum_name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
我的主题结构:
CREATE TABLE IF NOT EXISTS `topics` (
`topic_id` int(12) NOT NULL AUTO_INCREMENT,
`topic_forum_id` int(12) NOT NULL,
`topic_title` varchar(255) NOT NULL,
PRIMARY KEY (`topic_id`),
KEY `topic_forum_id` (`topic_forum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
提前致谢。
答案 0 :(得分:2)
您是否正在寻找以下内容 -
select `forums`.*, count(`topics`.`topic_id`) as `tot_topic`
from `forums`
left join `topics` on `topics`.`topic_forum_id` = `forums`.`forum_id`
group by `forums`.`forum_id`