查询没学过“叶平”老师课的同学的学号、姓名:

我们反着来 !不是要查没上过课的同学的名字吗。我们先查上叶平的课的学生。

思路:

1.先去查叶平上的课的课程id:

SELECT t1.courseid kid FROM tblcourse t1,
(SELECT  tblteacher.TeaId tid FROM tblteacher WHERE tblteacher.TeaName='叶平') t2WHERE t1.teaid=t2.tid -- 查出来叶平老师上的课的课程id

结果是:

2;去成绩表中(tblscore)查有这个课程id的学生。

  SELECT tblscore.StuIdFROM tblscore,( SELECT t1.courseid kid FROM tblcourse t1,
(SELECT  tblteacher.TeaId tid FROM tblteacher WHERE tblteacher.TeaName='叶平') t2WHERE t1.teaid=t2.tid) ykid-- 查出来叶平老师上的课的课程idWHERE tblscore.CourseId=ykid.kid 

结果如下:

我们可以看到上面的结果中有两个1013,这是因为这个学生有两门课都是叶平的课在查询时就查出来了。

我当时就很纠结,怎么才能把重复结果去掉呢。就一个1013好了。

后来我看了答案。答案也是这样的,两个1013

后来我对啊。我们最后查出来要的是不在这个列表里面的学生的id啊,那么这个列表里有几个重复的学生其实是没有关系的。

所以最后的写法就是:

SELECT *FROMtblstudentWHERE tblstudent.StuIdNOT IN(SELECT tblscore.StuIdFROM tblscore,( SELECT t1.courseid kid FROM tblcourse t1,
(SELECT  tblteacher.TeaId tid FROM tblteacher WHERE tblteacher.TeaName='叶平') t2WHERE t1.teaid=t2.tid) ykid-- 查出来叶平老师上的课的课程idWHERE tblscore.CourseId=ykid.kid )

查询结果:

答案的写法是:

 SELECT StuId,StuName FROM tblStudentWHERE StuId NOT IN(SELECT StuID FROM tblScore scINNER JOIN tblCourse cu ON sc.CourseId=cu.CourseIdINNER JOIN tblTeacher tc ON cu.TeaId=tc.TeaId    WHERE tc.TeaName='叶平')

扩展:

上面说到了重复记录怎么去除呢:用函数distinct

 SELECT DISTINCT(t11.idd)FROM (SELECT tblscore.StuId iddFROM tblscore,( SELECT t1.courseid kid FROM tblcourse t1,
(SELECT  tblteacher.TeaId tid FROM tblteacher WHERE tblteacher.TeaName='叶平') t2WHERE t1.teaid=t2.tid) ykid-- 查出来叶平老师上的课的课程idWHERE tblscore.CourseId=ykid.kid )t11

结果:

就一个1013了。没有重复记录了。

50个查询系列-第五个查询:查询没学过“叶平”老师课的同学的学号、姓名;...相关推荐

  1. 6、查询学过“张三”老师所教的所有课的同学的学号、姓名(重点)

    -- 6.查询学过"张三"老师所教的所有课的同学的学号.姓名(重点) SELECT d.s_id,d.s_name,a.t_name,c.c_id FROM teacher as ...

  2. 查询选修了课程表中所有课的同学的学号、姓名

    [表名和字段] 有如下几个表,分析问题选择合适的表进行查询 1.学生表 student(sid,sname,gender,class_id) 学生编号,学生姓名,学生性别,班级编号 2.课程表cour ...

  3. 学习记录375@查询学过“谌燕”老师所教的所有课的同学的学号、姓名-MySQL

    这玩意折磨了我一个小时,必须记录一下!解题思路和答案在最后. 相关表 CREATE DATABASE stumsc; CREATE TABLE student(sno VARCHAR(10) PRIM ...

  4. SQL基础系列(五)——子查询

    子查询是在一个完整的查询语句中,嵌套不同功能的小查询,从而完成复杂查询的一种编写形式.本部分主要介绍非关联子查询,关联子查询的适用场景,语句写法,执行逻辑及相对应的注意事项. 目录 1.非关联子查询 ...

  5. 【原创】StreamInsight查询系列(十九)——查询模式之检测异常

    上篇文章介绍了查询模式中如何发现趋势,这篇博文将介绍StreamInsight中如何检测异常. 测试数据准备 为了方便测试查询,我们首先准备一个静态的测试数据源: var now = DateTime ...

  6. oracle function 写查询语句_五个 SQL 查询性能测试题,只有 40% 及格率,你敢来挑战吗?...

    作者 | 董旭阳TonyDong,CSDN 博客专家 责编 | 唐小引 头图 | CSDN 下载自东方 IC 出品 | CSDN 博客 下面是 5 个关于索引和 SQL 查询性能的测试题:其中 4 个 ...

  7. 【原创】StreamInsight查询系列(六)——基本查询操作之分组聚合

    上篇博文介绍了StreamInsight基础查询操作中的用户自定义聚合部分.这篇文章将主要介绍如何在StreamInsight查询中使用分组聚合. 测试数据准备 为了方便测试查询,我们首先准备一个静态 ...

  8. SQL查询系列之六:SQL模糊查询

    2019独角兽企业重金招聘Python工程师标准>>>   在SQL结构化查询语言中,LIKE语句有着至关重要的作用.LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式. ...

  9. 【原创】StreamInsight查询系列(三)——基本查询操作之过滤

    上篇博文介绍了如何在LINQPad中输出StreamInsight查询结果.这篇文章将主要介绍StreamInsight基础查询操作中的过滤部分. 测试数据准备 为了方便测试查询,我们首先准备一个静态 ...

  10. 【原创】StreamInsight查询系列(十)——基本查询操作之联接

    上篇博文介绍了StreamInsight基础查询操作中的决胜排序部分.这篇文章将主要介绍如何StreamInsight基本查询的最后一篇--联接. 测试数据准备 为了方便测试查询,我们首先准备一些静态 ...

最新文章

  1. vue路由对象($route)参数简介
  2. SSM-SpringMVC-30:SpringMVC中InitBinder的骇客级优化
  3. android 第三方加密软件,Android实用图文教程之代码混淆、第三方平台加固加密、渠道分发...
  4. 返回值带头信息 php_PHP注释标记的整理
  5. linux虚拟网桥配置nat,使用NAT在Proxmox VE 6上创建专用网桥的方法
  6. VDP文件级恢复需要在用VDP备份的机器上浏览
  7. sp_updatestats和update statistics的区别
  8. 领导给了一堆无序杂乱的数据,我写了个Python自动化脚本
  9. html运行显示无法发布,我无法发表文章当我打开发表文章,总在网页的左下角出现网页发生错误 爱问知识人...
  10. 信息系统项目管理通关指南
  11. 7 php 内存泄漏_APP内存优化之内存泄漏
  12. isql连接sybase_使用isql连接Sybase ASE数据库的常见错误及处理方式
  13. 概率论总结(《概率论与数理统计》第四版 浙江大学)
  14. canvas简易人机五子棋
  15. 实现监控摄像头RTSP视频流-Web端人脸识别-ffmpeg+websocket+jsmpeg方法总结
  16. 【快速幂取模】NOI 7833:幂的末尾
  17. 由于超过32位java限制_Java 32位Xmx vs java 64位Xmx
  18. 25A - IQ test
  19. netty对http协议解析原理解析
  20. 【板栗糖GIS】为什么内网穿透过的地址出现Tunnel not found

热门文章

  1. 做祛痘产品微信是如何引流的?祛斑祛痘产品引流加粉渠道有哪些?
  2. CONCAT不是可以识别的内置函数名称。
  3. H3CNE中单臂路由实验
  4. Qt编写的SMTP客户端(库)
  5. Openbravo体验
  6. CS224d-Day 2:TensorFlow 入门
  7. maya python 游戏与影视编程指南pdf_Maya Python 游戏与影视编程指南
  8. 关于进程wuauclt.exe
  9. 新年新气象,重新出发
  10. 最小采样频率计算公式_【白皮书】多路复用和采样理论