mysql - 返回整个表+计算另一个表

时间:2014-01-19 17:46:32

标签: php mysql sql

我正在尝试为学校项目编写一个论坛,我正在尝试提出一个查询,它将为我提供所有论坛名称+计算每个论坛的帖子数量。

这个想法很简单:一个表包含所有论坛的列表(论坛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 ;

提前致谢。

1 个答案:

答案 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`

点击此处http://www.sqlfiddle.com/#!2/74852/2