子查询
查询里面还有查询
注意: 子查询优先于主查询执行 最好子查询用括号
- 查询比ALLEN工资高的员工信息
SELECT
*
FROM
emp
WHERE
sal > (
SELECT
sal
FROM
emp
WHERE
ENAME = 'ALLEN')
单行子查询
单行子查询的子查询只返回一行, 使用单行运算符 > / = />= /< /<= / <> 不等于
- 显示和雇员7369从事相同工作并且工资大于雇员7876的雇员的姓名和工作。
select ename, job
from emp
where sal > (select sal from emp where empno=7876)
and job=(select job from emp where empno=7369)
image.png
- 子查询使用组函数
- 查询工资最低的员工姓名, 岗位及工资
select ENAME, JOB, sal from emp
WHERE sal = (SELECT MIN(sal) from emp)
- 带有having子句的子查询
查询部门最低工资比20部门最低工资高的部门编号和最低工资
SELECT deptno , MIN(SAL) from emp GROUP BY DEPTNO
HAVING MIN(SAL) > (SELECT MIN(sal) from emp WHERE DEPTNO = 20)
- 查询入职日期最早的员工姓名,入职日期
select ename , hiredate from emp
where hiredate=(select min(hiredate) from emp)
-- 查询工资比SMITH工资高并且工作地点在CHICAGO的员工姓名,工资,部门名称
select e.ename , e.sal,d.dname from emp e, dept d
where e.deptno= d.deptno
and e.sal>(select sal from emp where ename='smith')
and d.loc='chicago'
- 查询入职日期比20部门入职日期最早的员工还要早的员工姓名,入职日期
select ename , hiredate from emp
where HIREDATE < (SELECT MIN(HIREDATE) from emp WHERE DEPTNO = 20)
没有结果
网友评论