什么是子查询:当一个查询是另一个查询的子部分时,我们叫做子查询
子查询的分类:
①从对象间的关系分类
相关子查询: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 可以是多列子查询
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。