mysql多表查询示例_mysql多表的查询的简单示例

mysql多表的查询的简单示例

发布时间:2020-05-14 10:49:08

来源:亿速云

阅读:194

作者:三月

下面讲讲关于mysql多表的查询的简单示例,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完mysql多表的查询的简单示例这篇文章你一定会有所受益。

导入hellodb.sql生成数据库,并进入到数据库之中mysql -uroot < hellodb.sql

use mysql

(1)以ClassID分组,显示每班的同学的人数

`select classid,count(stuid) from students group by classid``

27708745c096e2fcafdd18c89911a30f.png

(2)以Gender分组,显示其年龄之和

select gender,sum(age) from students group by gender

c90b009212f32123dd1501c06bde7e02.png

(3)以ClassID分组,显示其平均年龄大于25的班级

select classid,avg(age) as new_age from students group by classid having new_age>25

406b3165eb9d6663f0fe505de9d36d60.png

(4)以Gender分组,显示各组中年龄大于25的学员的年龄之和

select gender,sum(age) from students group by gender

aad7169026e195285472b0f808c9ab17.png

(5)显示前5位同学的姓名、课程及成绩

select name,course,score from (select name,score,courseid from (select * from students where stuid<=5) as s inner join scores on scores.stuid=s.stuid)as t  inner join courses on courses.courseid=t.courseid

(6)显示其成绩高于80的同学的名称及课程

select name,course from (select name,score,courseid from (select from scores where Score>80) as t inner join students on students.stuid=t.stuid) as t inner join courses on courses.courseid=t.courseid

d486a70a9bcf95eba74a125afcd1f729.png

(7)求前8位同学每位同学自己两门课的平均成绩,并按降序排列

select t.stuid,avg(score) from (select stuid,courseid from (select from students where stuid<=8) as s inner join coc on s.classid=coc.classid) as t inner join scores on s  cores.stuid=t.stuid group by t.stuid

2c697da6f06a6ff914dc777a8a306445.png

(8)取每位同学各门课的平均成绩,显示成绩前三名的同学的姓名和平均成绩

select name,avg(score) as 平均分数 from (select name,courseid from students inner join coc on students.classid=coc.classid) as s inner join scores on s.courseid=scores.courseid group by stuid order by 平均分数 desc limit 3

dd1e455c69b4aeacc1db0df8db8a8480.png

(9)显示每门课程课程名称及学习了这门课的同学的个数

select courseid,count(CourseID) from students inner join coc on coc.classid=students.classid group by courseid

(10)显示其年龄大于平均年龄的同学的名字

select * from students where age>(select avg(age) from students)

(11)显示其学习的课程为第1、2,4或第7门课的同学的名字

select name,courseid from (select * from coc where CourseIDin ('1','2','4','7')) as new inner join students on students.classid=new.classid

(12)显示其成员数最少为3个的班级的同学中年龄大于同班同学平均年龄的同学

select * from (select name,classid,age from students) as s inner join (select new.classid,avg(age) as cc from (select classid from students group by ClassID having count(stuid) >= 3) as new inner join students on students.classid=new.classid group by new.classid) as a on a.classid=s.classid where cc

对于以上mysql多表的查询的简单示例相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的行业资讯板块。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值