mysql——子查询

进阶7:子查询

含义:出现在其他语句中的SELECT语句,称为子查询或内查询
外部的查询语句:称为主查询或外查询
分类:    按子查询出现的位置:SELECT后面(①)、FROM后面(④)、
                WHERE或HAVING后面(①②③)※、EXISTS后面(相关子查询)(④)
    按功能不同(结果集的行列数不同)分为:
        ①标量子查询(结果集有一行一列)
        ②列子查询==多行查询(结果集有一列多行)
        ③行子查询(结果集有一行多列)
        ④表子查询(结果集一般为多行多列)

一、WHERE或HAVING后面

特点:①子查询放在小括号内
②子查询一般放在条件的右侧
③标量子查询一般单配单行操作符使用
    单行操作符:> < <> >= <= 
  列子查询一般搭配多行操作符使用
    多行操作符:IN ANY/SOME ALL
④子查询执行优先于主查询(主查询条件用到了子查询的结果)

非法使用标量子查询的情况(子查询的结果不符合主查询要求的结果值)

1、标量子查询(单行子查询)

案例1:谁的工资比Abel高

SELECT salary,last_name
FROM employees
WHERE salary>(
    SELECT salary 
    FROM employees
    WHERE last_name='Abel'
);


案例2:返回job_id与141号员工相同,salary比143号员工多的员工的姓名、job_id、工资

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和其最低工资

SELECT depart
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值