​ 什么是子查询:当一个查询是另一个查询的子部分时,我们叫做子查询

​ 子查询的分类:

​ ①从对象间的关系分类

​ 相关子查询:select * from t1 where a1=(select b from t2 where b=a1);

​ 非相关子查询:select * from t1 where a1=(select b from t2 where b=2);

​ ②从查询结果上分类

​ 单列子查询

​ 如何显示与SMITH同一部门的所有员工?

​ select * from emp where deptno=(select deptno from emp where ename='smith') and ename !='smith';

​ 多列子查询

​ 如何查询与smith的部门和岗位完全相同的所有雇员

​ select * from emp where (deptno,job) = (select deptno,job from emp where ename='smith');

​ 多行子查询

​ 如何查询和10号部门的工作相同的雇员的名字、岗位、工资、部门号

​ select ename,job,sal,deptno from emp where job in(select job from emp where deptno=10);

​ 子查询可以出现在哪些位置?

​ 。查询列位置

​ 必须是单列子查询并且要取别名,否则报错

​ 。from子句位置

​ 必须非相关子查询,否则报错

​ 。where子句位置

​ 范围操作符> < ,必须是单列子查询

​ in 可以是多列子查询


DB哥
4 声望1 粉丝

« 上一篇
MySQL联表查询
下一篇 »
MySQL数据类型