什么是子查问:当一个查问是另一个查问的子局部时,咱们叫做子查问
子查问的分类:
①从对象间的关系分类
相干子查问: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 能够是多列子查问