- 多行子查询
3.1多行子查询
练习1
-- 请思考:如何显示与Smith同一部门的所有员工?/* 1.先查询到Smith的部门编号 2.把上面的select语句当做是一个子查询来使用*/SELECT deptnoFROM empWHERE ename = 'SMITH';-- 先查询到Smith的部门编号-- 单行子查询SELECT * FROM emp WHERE deptno = (SELECT deptnoFROM empWHERE ename = 'SMITH');-- 多行子查询-- 如何查询和部门10的工作相同 的雇员的名字、岗位、工资、部门号,但是不含10号部门自己的雇员/* 1.查询到10号部门有哪些工作岗位 2.把上面的查询结果当做是一个子查询来使用*/SELECT DISTINCT job FROM emp WHERE deptno=10;SELECT ename,job,sal,deptno FROM emp WHERE job IN( -- 返回了一个集合,用inSELECT DISTINCT jobFROM empWHERE deptno=10)AND deptno !=10; -- 不含10号部门自己的雇员

文章插图

文章插图
3.2all操作符
- 在多行子查询中使用all操作符
-- 显示工资比部门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)

文章插图
3.3any操作符
- 在多行子查询中使用any操作符
-- 请思考:如何显示工资比部门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)

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

文章插图

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

文章插图

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

文章插图

文章插图
经验总结扩展阅读
- 2023年12月13日结婚好不好 适合嫁娶黄道吉查询
- 2023年12月14日是结婚好日子吗 宜嫁娶吉日查询
- 2023年3月3日老黄历查询什么日子
- 结婚好日子查询2024吉日怎样选择结婚的日子
- 2023年属蛇人最佳结婚日子是哪几天 属蛇人结婚吉日查询
- 2023年适合属马人结婚的吉日查询 属马人结婚吉日查询
- 2023年适合属羊人结婚的吉日查询 属羊人结婚吉日查询
- 2023年属猪人结婚的良辰吉日查询 属猪人结婚吉日查询
- 2022年阴历11月求财吉日查询
- 2022年阴历11月提车吉日查询