-- where或having后面
/*1.标量子查询(单行子查询)
2.列子查询(多行子查询)
3.行子查询(多列多行)
特点:
①子查询一般放在小括号内
②子查询一般放在条件的右侧
③标量子查询,一般搭配着单行操作符使用(>、<、>=、<=、<>)
④一般搭配着多行操作符使用(in、ang/some、all)
⑤子查询的执行优先于主查询的执行
*/
-- 1.标量子查询
-- 案例1:谁的工资比Abel高
SELECT *
FROM employees
WHERE salary>(
select salary
FROM employees
WHERE last_name="Abel"
);
/*
案例2:返回job_id与141号员工相同,salary比143员工多的员工 的last_name job_id 和 salary
①查询141号员工的job_id
②查询141号员工的工资
*/
SELECT last_name,job_id,salary
FROM employees
WHERE job_id=(
SELECT job_id
FROM employees
WHERE employee_id=141)
AND salary>(
SELECT salary
FROM employees
WHERE employee_id=143);
-- 案例3:返回公司工资最少的员工的last_name,job_id和salary
SELECT last_name,job_id,salary
FROM employees
WHERE salary=(
SELECT MIN(salary)
FROM employees);
-- 案例4:查询最低工资大于50号部门最低工资的部门id和其最低工资
-- 注意:其中用了group by 因为要查询的是每个部门的最低工资,所以要按照部门id分类
SELECT department_id,MIN(salary)
FROM employees
GROUP BY department_id
HAVING MIN(salary)>(
SELECT MIN(salary)
FROM employees
WHERE department_id=50);
10.2where后的 标量(一行一列)子查询使用.——MySQL
最新推荐文章于 2021-11-24 20:07:41 发布