子查询分为三类:
1.单行子查询> < >= <= <>
2.多行子查询 in any all
3.多列子查询
例如:查找收入大于员工7566的其他员工的姓名
分类:通过分析是单行子查询
实现步骤:先找7566员工的收入
select sal from emp where empno=7566;
第二步:查找工资大于2975的员工姓名(2975是7566的工资)
select ename from emp where sal>‘2975’;
最后将代码合并:
select ename from emp where sal>(select sal from emp where empno=7566) order by ename;
任务:显示和雇员7369从事相同的工作并且工资大于雇员7876的雇员的姓名和工作
通过分析:单行子查询
第一步:查找7369员工的工种
select job from emp where empno=7369;
第二步:查找员工7876的工资
select sal from emp where empno=7876;
第三步:查找工种为CLERK(7369的工种)、工资大于1100(7876的工资)员工的姓名和工种
select ename,job from emp where job=‘CLERK’ and sal>1100;
汇总代码:
select ename,job from emp where sal>(select sal from emp where empno=7876) and job=(select job from emp where empno=7369);