select empno, ename, sal, job from emp
where (job, sal) = (select job, sal from emp where empno=7788)
and empno <> 7788;
select empno, ename, sal, job from emp
where (job, sal) in (select job, sal from emp where empno=7788)
and empno <> 7788;
外层值参与内层查询的运算,执行顺序为 外层取值 - 传到内层进行运算 - 内层运算返回值参与外层运算 (循环交错查询)
select e.ename,e.sal,e.deptno
from emp e where e.sal > (select avg(s.sal) from emp s
where e.deptno = s.deptno);
内层查询与外层查询无关,子查询只执行一次,返回结果后参与外层运算
原文:https://www.cnblogs.com/hyang0/p/10626453.html