day05多表查询01( 三 )


3.2all操作符

  • 在多行子查询中使用all操作符
请思考:显示工资比部门30所有员工工资高的员工的姓名、工资和部门号
-- 显示工资比部门30所有员工工资高的 员工的姓名、工资和部门号SELECT ename,sal,deptno FROM emp WHERE sal>ALL(SELECT salFROM empWHERE deptno = 30)-- 或者SELECT ename,sal,deptno FROM emp WHERE sal>(SELECT MAX(sal)FROM empWHERE deptno = 30)
day05多表查询01

文章插图
3.3any操作符
  • 在多行子查询中使用any操作符
请思考:如何显示工资比部门30其中一个员工工资高的 员工的姓名、工资和部门号
-- 请思考:如何显示工资比部门30其中一个员工工资高的 员工的姓名、工资和部门号SELECT ename,sal,deptno FROM emp WHERE sal>ANY(SELECT salFROM empWHERE deptno = 30)-- 或者SELECT ename,sal,deptno FROM emp WHERE sal>(SELECT MIN(sal)FROM empWHERE deptno = 30)
day05多表查询01

文章插图
3.4子查询临时表
  • 子查询当做一张表来使用
例子
ecshop表:
day05多表查询01

文章插图

day05多表查询01

文章插图
要求:查询ecshop中各个类别中价格最高的商品
  1. 先得到各个类别中,价格最高的商品 --当做一个临时表

day05多表查询01

文章插图
day05多表查询01

文章插图
  1. 选择临时表和原本的表格,过滤条件为
    临时表的cat_id = 原商品表的cat_id
    && 临时表的max_price=原商品表的price

day05多表查询01

文章插图
day05多表查询01

文章插图

推荐阅读