本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
解决Mysql多行子查询的使用及空值问题
codesky · 204浏览 · 发布于2022-01-22 +关注

所谓多行子查询,是指执行查询语句获得的结果集中返回了多行数据的子查询,今天通过本文给大家分享Mysql多行子查询的使用及空值问题,感兴趣的朋友一起看看吧

1 定义

  • 也称为集合比较子查询

  • 内查询返回多行

  • 使用多行比较操作符

2 多行比较操作符

-- 多行子查询
-- IN
SELECT
    employee_id,
    manager_id,
    department_id
FROM
    employees
WHERE
    manager_id IN ( -- 在返回集合中查找有没有相同的manager_id在里面
    SELECT
        manager_id
    FROM
        employees
    WHERE
    employee_id IN ( 141, 147 ));  
-- ANY
#题目:返回其它job_id中比job_id为'IT_PROG'部门任一工资低的员工的员工号、姓名、job_id 以及salary
    last_name,
    job_id,
    salary
    job_id != 'IT_PROG'
    AND salary < ANY ( -- 比任意一个小都可以
    SELECT salary FROM employees WHERE job_id = 'IT_PROG' );
-- ALL
#题目:返回其它job_id中比job_id为'IT_PROG'部门所有工资低的员工的员工号、姓名、job_id 以及salary
    AND salary < ALL ( -- 比所有的都小才可以


3 空值问题 

3.1 问题

    -- 空值问题
SELECT
    last_name
FROM
    employees
WHERE
    employee_id NOT IN (
    SELECT -- 子查询中的结果有NULL
        manager_id
    employees)


子查询的结果: 

查询结果:

3.2 解决

去掉子查询中的NULL即可

    - 空值问题解决
SELECT
    last_name
FROM
    employees
WHERE
    employee_id NOT IN (
    SELECT
        manager_id
    FROM
        employees
    manager_id IS NOT NULL)


子查询去掉NULL: 

查询结果:


相关推荐

使用SELECT语句检索数据

奔跑的男人 · 793浏览 · 2019-06-03 09:33:43
部署MySQL延迟从库的几个好处

吴振华 · 657浏览 · 2019-05-14 21:57:51
MongoDB凭什么跻身数据库排行前五?

iamitnan · 716浏览 · 2019-06-18 10:04:56
Oracle开启和关闭的几种模式

qq2360248666 · 738浏览 · 2019-06-04 10:18:47
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页