MySql数据库查询同时选修了两门课的学生姓名、学号

这个查询要用到含有学生姓名、学号的表和含有学生选课情况的表,我定义的含有学生姓名sname和学号sno的表是student表(sno学号,sname姓名,sdept专业,sage年龄,ssex性别)含有学生选课情况的表是sc表(sno学号,cno选修课程号,grade成绩),。
假设查询选修课程为2和3的学生姓名和学号,方法如下:
集合查询
where语句下的and不能用于连接两个相同属性的查询,如该题不能写为where cno=‘002’ and cno=‘003’ 。所以首先要从sc表查询选修课程为2号(或者3号)的学生学号,然后用and连接查询课程号为2号(或3号)的课程:

 WHERE sc.sno IN( SELECT sno FROM sc WHERE cno='002'AND sno IN             // ---+( SELECT sno FROM sc //    |查询选课课号为3的学生学号WHERE cno='003'    // ---+))

以上为在sc表中查询出选修课程为2号和3号的学生学号,然后,我们要将查询出来的学号集合和student表结合,在student表中找出和以上查询出的学生学号相同的学生,最后输出其学号和姓名。
因此,总的查询语句为:

SELECT student.sno,sname FROM student,sc WHERE sc.sno IN( SELECT sno FROM sc WHERE cno='002'AND sno IN             //  ---+( SELECT sno FROM sc//     |查询选课课号为3的学生学号WHERE cno='003'   //  ---+))AND student.sno=sc.snogroup by student.sno;

因为两个表中都有学号sno属性,所以要表明所要查询的学号出自哪个表,最后按学号分组,以免重复出现同一名学生的信息。
输出结果如图所示:

+-------+-------+
| sno   | sname |
+-------+-------+
| 08001 | 张力  |
| 08002 | 李丽  |
| 08003 | 赵海  |
+-------+-------+
3 rows in set

数据库查询_同时选修了两门课的学生姓名、学号相关推荐

  1. mysql中查询没有选修某两门课的_50条SQL查询技巧、查询语句示例

    Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题 ...

  2. mysql字连接查询实现至少选修C1和C2两门课的学生和一个都没有被选中的课程

    至少选修C1和C2两门课的学生 一个都没有被选中的课程 至少被一个同学选中的课程 select cno,cname from C where exists(select * from sc where ...

  3. mysql中查询没有选修某两门课的_SQL查询语法30例

    学好SQL查询:无他,概手熟耳. 1. 基础表: 学生表: 老师表: 课程表: 成绩表: 2. 题目: 1.查询名字中含有"华"字的学生信息 select * from 学生 wh ...

  4. 10-59 查询选修某两门课程的学生

    分数 10 全屏浏览题目 切换布局 作者 张庆 单位 集美大学 本题目要求编写SQL语句, 检索出 sc表中至少选修了'C001'与'C002'课程的学生学号. 提示:MySQL不允许使用inters ...

  5. mysql 查询 至少选择了两门课,【练习3】mysql高级查询

    一.数据准备 1.进入mysql mysql -uroot -proot 2.查看所有数据库 show databases; 3.新建数据库,并设置其编码格式 create database twoc ...

  6. 查询至少选修课程号为'c2'和'c4' 两门课程的学生学号

    选课表sc = {学号sco,课程号cno...} --查询至少选修课程号为"c2"和"c4"两门课程的学生的学号 select sca.sno from sc ...

  7. 查询仅仅选修了指定的两门课程的学生学号

    select studid from transcript where studid in ( --选了这两门课的学生学号 select studid from transcript where cr ...

  8. 数据库的多表查询操作-查询只选修了1门课程的学生,显示学号、姓名、课程名。

    文章目录 前言 一.建立数据库和表 二.数据库展示 2.查询只选修了1门课程的学生,显示学号.姓名.课程名. 总结 前言 在我看来数据库真的是一个神奇的东西,不但里面的只是点很深刻,而且对于我们学习起 ...

  9. 10-4 查找至少选修两门课程的学生学号

    查找至少选修两门课程的学生学号 提示:请使用SELECT语句作答. 表结构: 请在这里写定义表结构的SQL语句.例如: CREATE TABLE STUDENT ( SNO CHAR(5) PRIMA ...

最新文章

  1. opencv3.2.0 Cmake 3.8.0 + tdm-gcc-5.1.0-3 编译问题 highgui _Win32_IE
  2. 编程的精髓:发现问题,解决问题
  3. LightOJ - 1243 Guardian Knights(最小费用最大流+bfs)
  4. android 视网膜黄斑检查 amsler,自测黄斑病变 | 一张图搞定
  5. treelistview 所有节点失去焦点_球天下-儿皇梦只是一厢情愿 皇马已失去对博格巴的兴趣...
  6. 【OpenCV学习笔记】【函数学习】十九(感兴趣区域)
  7. Fire! (双bfs+预处理)
  8. Linux系统安装sentaurus,Synopsys Sentaurus_vA_2008.09-SP1安装详解.pdf
  9. 插值(五)Bicubic interpolation(双三次插值)
  10. Elasticsearch顶尖高手系列:高手进阶篇(二)
  11. 《大数据时代:生活、工作与思维的大变革》:看“大数据时代预言家”的真知灼见
  12. 新兴网站神秘虎嗅,获得数百万元投资
  13. tableau高级绘图(六)--tableau绘制范围点图
  14. 解决google打开界面就是hao123的问题
  15. 安全测试简述/安全审计工具
  16. 缓冲、运放、跟随电路详解及区分
  17. ContextSwitchDeadlock 以及 DisconnectedContext
  18. Flink规则引擎实践分享
  19. Spring Boot配置Quartz定时任务
  20. 中小学计算机网络教师考试报名时间,中小学教师资格考试网报名流程

热门文章

  1. gem意思_宝石gem的gem什么意思 宝石gem为什么叫老舅
  2. 想做项目经理?这些工具必须了解
  3. Python学习(三十八)—— Djago之Ajax
  4. 文件传输工具Xftp5安装图解
  5. [转]日语快速学习原则和方法!
  6. 一位上海疫情下的悲催女程序员!
  7. 基础实验二:流水灯设计实现【硬件课程设计】
  8. 论新十大关系——人与狗篇
  9. Ubuntu16.04安装armadillo库
  10. 遵循IEC 61512/ ISA 88构建数字化工厂