经过上一篇博客的讨论相信大家已经对多表查询已经有了一定的了解,有需要的话大家可以看看https://blog.csdn.net/a15929748502/article/details/80736537,下面我将和大家一起继续学习数据库的多表查询
还是用前面的三个表
一,多行子查询
返回多行记录的子查询
1.使用关键字in
例如; 显示同一个宿舍楼(1号宿舍楼)的同学,注意这里用in 而不用=,因为where后符合条件的id有多个值,in 说明满足其中一个就可以了
2,。在多行子查询中使用all操作符
显示数学成绩比测控2班的所有同学的成绩高的同学的姓名、学号,数学成绩
3.在多行子查询中使用any操作符
显示数学成绩比测控2班的任意同学的成绩高的同学的姓名、学号,数学成绩
这样的多行子查询就演示完成了,下面我们要继续探究
(二)多列子查询
单行子查询是指子查询只返回单列,单行数据,多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句
查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人
mysql> select ename from EMP where (deptno, job)=(select deptno, job from EMP where
ename='SMITH')
-> and ename != 'SMITH';
+-------+
| ename |
+-------+
| ADAMS |
+-------+
(这里我用了以前的一张表)
(三)在from子句中使用子查询
子查询语句出现在from子句中。这里要用到数据查询的技巧,把一个子查询当做一个临时表使用。
如何显示高于自己班平均数学成绩的学生的信息
不可否认这种操作还是有一定的难度的,需要大家的勤加练习
这时我们的多表查询讨论也接近尾声了,谢谢支持。