英语考试的学生人数"/>
mysql中如何查询同时参加计算机考试和英语考试的学生人数
mysql中如何查询同时参加计算机考试和英语考试的学生人数
- 学生信息表
- 学生成绩表score
- 代码
- 整体思路
- 代码详解
- 运行结果
- 如果有问题欢迎批评指正
学生信息表
学生成绩表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=‘英语’
运行结果
如果有问题欢迎批评指正
更多推荐
mysql中如何查询同时参加计算机考试和英语考试的学生人数
发布评论