【问题标题】:Subquery as a column : Nested Subquery子查询作为列:嵌套子查询
【发布时间】: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


【解决方案1】:

看来你在找这个

 select a.team_name, count(*) 
 from  team as a
 inner join student as b on a.id = b.team
 group by a.team_name

(使用适当的列进行连接)

【讨论】:

  • @TinTran 是的 .. 正在输入 ... 谢谢 .. 我已添加群组
  • Giving 语法错误:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 '*) @scaisEdge 附近使用的正确语法
  • @PrincePrakash 向我展示整个信息......附近......这是我需要的部分......最终告诉我你正在使用的确切查询......
  • ' select a.team_name, b.count(*) from team as a inner join student as b on a.team_id = b.team group by a.team_name ' 这是我正在使用的查询@scaisEdge
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
  • 2018-10-12
相关资源
最近更新 更多