【发布时间】:2016-08-13 03:56:45
【问题描述】:
我有两个表“学生”和“团队”。我想根据团队名称显示学生人数,团队中的 Team_id 是主键。
我试过这样
(SELECT(SELECT team,count(*) as team
FROM student GROUP BY team) AS total,
(SELECT team_name
from team WHERE team_id IN (SELECT team
FROM student GROUP BY team)) as team)
我想输出为
Team Name Total Student
-----------------------------
Team 1 25
Team 2 10
表“学生”
CREATE TABLE IF NOT EXISTS `student` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`rid` varchar(200) NOT NULL,
`sid` varchar(200) NOT NULL,
`name` varchar(600) NOT NULL,
`age` varchar(200) NOT NULL,
`dob` varchar(200) NOT NULL,
`sex` varchar(200) NOT NULL,
`weight` varchar(200) NOT NULL,
`height` varchar(200) NOT NULL,
`team` varchar(600) NOT NULL,
`age_group` varchar(200) NOT NULL,
`weight_group` varchar(500) NOT NULL,
`belt` varchar(200) NOT NULL,
`black_belt` varchar(200) NOT NULL,
`ikata` varchar(20) NOT NULL,
`ikumite` varchar(20) NOT NULL,
`team_kata` varchar(20) NOT NULL,
`special_entry` varchar(20) NOT NULL,
`challange` varchar(50) NOT NULL,
`state` varchar(200) NOT NULL,
`weapon` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
表“团队”
CREATE TABLE IF NOT EXISTS `team` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`team_id` varchar(500) NOT NULL,
`team_name` varchar(500) NOT NULL,
`address` varchar(500) NOT NULL,
`coach_name` varchar(500) NOT NULL,
`coach_number` varchar(500) NOT NULL,
`coach_email` varchar(500) NOT NULL,
`gold` varchar(200) NOT NULL,
`state` varchar(500) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
【问题讨论】:
-
你能发布你的表结构吗?
-
SELECT 子句中的子查询可能不会返回多个结果。
-
这些表有什么关系?换句话说,您如何将学生与团队联系起来?
-
学生表中的列'Team'是Team表中的'Team_id'
标签: mysql