当前位置:网站首页>MySQL |子查询
MySQL |子查询
2022-07-30 09:30:00 【Begonia_cat】
子查询
子查询指一个查询语句嵌套在另一个查询语句内部的查询。
外查询也叫主查询,内查询也叫子查询。
子查询分类
- 按子查询的结果分类
- 查询结果是一条:
单行子查询; - 查询结果是多条:
多行子查询。
- 查询结果是一条:
- 按子查询的执行次数分类
- 子查询只执行一次,执行结果作为主查询的条件执行:
不相关子查询 - 子查询循环执行多次,依赖外部查询,要用到外部表:
相关子查询
- 子查询只执行一次,执行结果作为主查询的条件执行:
OR(或) 与 IN效果一样
WHERE A=1 OR A=2
IS EQUAL TO
WHERE A IN (1, 2)
推荐IN
题目:查询最低工资大于50号部门最低工资的部门id和其最低工资
SELECT department_id, MIN(salary)
FROM employee
GROUP BY department
HAVING MIN(salary) > (SELECT MIN(salary)
FROM employee
WHERE department_id = 50)
CASE
题目:显示员工的employee_id,last_name和location。其中,若员工department_id与location_id为1800
的department_id相同,则location为’Canada’,其余则为’USA’。
SELECT employee_id, last_name, (CASE department_id
WHEN (SELECT department_id
FROM employee
WHERE location_id=1800),
THEN location='Canana'
ELSE location='USA' END) location
FROM employee
ANY
题目:返回其它job_id中比job_id为‘IT_PROG’部门任一工资低的员工的员工号、姓名、job_id 以及salary
SELECT employee_id, name, job_id, salary
FROM employees
WHERE job_id <> 'IT_PROG'
AND salary < ANY(SELECT salary
FROM employees
HAVING job_id='IT_PROG');
MIN 与 <=ALL效果一样
查询平均工资最低的部门id
Mysql中,聚合函数不可以嵌套使用。oracle可以。
MIN(AVG(SALARY))在mysql种是的。
SELECT department_id
FROM employees
GROUP BY department
HAVING AVG(salary) <= ALL(SELECT AVG(salary) avg_salary
FROM employees
GROUP BY department)
相关子查询
如果存在,直接返回,不再查找。
如果不存在,继续查找,直至找到或全部查找完。
EXIST:题目字眼“存在”NOT EXIST:题目字眼“不存在”
自连接:DISTINCT + 自连接
自连接优于子查询,自连接的处理速度更快!
边栏推荐
- 606. 根据二叉树创建字符串(视频讲解!!!)
- PyQt5-用像素点绘制正弦曲线
- 连接mysql报错WARN: Establishing SSL connection without server‘s identity verification is not recommended
- Day113. Shangyitong: WeChat login QR code, login callback interface
- echart图表清空上一次数据
- 元宇宙改变人类工作模式的四种方式
- idea2021+Activiti [the most complete note one (basic use)]
- Version management of public Jar packages
- leetcode 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
- Re16:读论文 ILDC for CJPE: Indian Legal Documents Corpus for Court Judgment Prediction and Explanation
猜你喜欢
随机推荐
SST-Calib:结合语义和VO进行时空同步校准的lidar-visual外参标定方法(ITSC 2022)
在机器人行业的专业人士眼里,机器人行业目前的情况如何?
(Text) Frameless button settings
编译报错: undefined reference to `google::FlagRegisterer::FlagRegisterer解决方法
时刻铭记:总有一天你将破蛹而出
JCL 学习
ospf2双点双向重发布(题2)
(***重点***)Flink常见内存问题及调优指南(一)
(BUG记录)No module named PIL
If someone asks you about distributed transactions again, throw this to him
PyQt5-绘制不同类型的直线
Re19:读论文 Paragraph-level Rationale Extraction through Regularization: A case study on European Court
JVM内存布局、类加载机制及垃圾回收机制详解
连接mysql报错WARN: Establishing SSL connection without server‘s identity verification is not recommended
实战演练 | 在 MySQL 中计算每日平均日期或时间间隔
ThreadLocal内存泄漏是伪命题?
CVTE school recruitment written test questions + summary of knowledge points
els 方块停在方块上。
(文字)无框按钮设置
leetcode 剑指 Offer 48. 最长不含重复字符的子字符串









