weixin_43778264
采纳率0%
2018-11-23 04:24 阅读 1.2k

SQL 从不同表提取数据和统计

本人刚刚开始学SQL

表一 参加社团

 社团号     学号
 0001   201830740016
 0001   201830740023     
 0001   201830740047
 0001   .....
 0002   .....
 0002
 0002
 0002
 0003

 表2:社团
 编号    名称
 0001    舞蹈团
 0002    合唱团
 0003    篮球队
 0004    游泳队

要求:统计每个社团拥有的学生数量,显示社团编号 社团名称 以及学生人数

想直接用子查询统计,结果发现只能返回单个数据。
现在一头雾水不知道怎么解决
吧里的大佬看看怎么输入SQL吧
谢谢啦
(Access 2007-2016)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • OnlyLove_longshao OnlyLove_longshao 2018-11-23 05:54

    方法一:
    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.社团号

    点赞 评论 复制链接分享
  • qq_37486884 疯狂的熊猫Npe 2018-11-23 05:57

    这个很简单你说只返回单个数据是因为你没有对社团进行分组, group by assn_id

    点赞 评论 复制链接分享
  • weixin_40352265 weixin_40352265 2018-11-23 06:02

    多表连接查询,然后进行分组统计
    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
    这个是表一:参加社团
    图片说明
    这个是表二:社团
    图片说明
    这张图片是结果:
    图片说明

    点赞 评论 复制链接分享

相关推荐