mysql中如何查询同时参加计算机考试和英语考试的学生人数

mysql中如何查询同时参加计算机考试和英语考试的学生人数

学生信息表

在这里插入图片描述

学生成绩表score

在这里插入图片描述

代码

select stu.*
from student as stu,score as s1,score as s2
where stu.id= s1.stu_id
and s1.c_name='计算机'
and stu.id=s2.stu_id
and s2.c_name='英语'

整体思路

使用两次内连接。
第一次把学生信息表和学习成绩表相连接,并限定条件只把科目为计算机的成绩表记录与学生表相连,这样就得到了只有参加计算机考试的学生信息表。
第二次把上一张表再与学生成绩表相连接,并限定条件只把科目为英语的记录与上一张表链接,这样就得到了同时参加计算机考试和英语考试的学生信息表。
对这个表中包含的学生信息表的字段进行筛选就得到了同时参加计算机考试和英语考试的学生信息。

代码详解

select * from A,B where A.a=B.b

是内连接的一种写法

select stu.*
from student as stu,score as s1,score as s2

表示把student表和score、score三个表进行内连接。student命名为stu,第一个score命名为s1,第二个score命名为s2。

where stu.id= s1.stu_id
and s1.c_name='计算机'

stu与s1链接的字段为
stu.id= s1.stu_id
限定条件为
and s1.c_name=‘计算机’

and stu.id=s2.stu_id
and s2.c_name='英语'

第二次链接的字段为
and stu.id=s2.stu_id
限定条件为
and s2.c_name=‘英语’

运行结果

在这里插入图片描述

如果有问题欢迎批评指正

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值