本人刚刚开始学SQL
表一 参加社团
社团号 学号
0001 201830740016
0001 201830740023
0001 201830740047
0001 .....
0002 .....
0002
0002
0002
0003
表2:社团
编号 名称
0001 舞蹈团
0002 合唱团
0003 篮球队
0004 游泳队
要求:统计每个社团拥有的学生数量,显示社团编号 社团名称 以及学生人数
想直接用子查询统计,结果发现只能返回单个数据。
现在一头雾水不知道怎么解决
吧里的大佬看看怎么输入SQL吧
谢谢啦
(Access 2007-2016)
方法一:
SELECT a.社团号, b.名称, COUNT(a.学号) 学生数量 FROM 参加社团 a, 社团 b
WHERE a.社团号 = b.编号
GROUP BY a.社团号
方法二:
SELECT b.编号, b.名称, COUNT(a.学号) 学生数量 FROM 参加社团 a RIGHT JOIN 社团 b
ON a.社团号 = b.编号
GROUP BY a.社团号
这个很简单你说只返回单个数据是因为你没有对社团进行分组, group by assn_id
多表连接查询,然后进行分组统计
SELECT b.id as '社团编号',b.name '社团名称',count(card_id) as '学生人数' from table1 a LEFT JOIN table2 b ON a.id=b.id
GROUP BY b.id
这个是表一:参加社团
这个是表二:社团
这张图片是结果: