您当前的位置: 首页 >  sql

Dream丶Killer

暂无认证

  • 1浏览

    0关注

    188博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

(简单)SQL练习10:获取所有非manager的员工emp_no

Dream丶Killer 发布时间:2021-01-29 14:41:50 ,浏览量:1

SQL练习10:获取所有非manager的员工emp_no
      • 题目描述
      • 考察知识点
      • 解题思路

题目描述

有一个员工表 employees 简况如下: 在这里插入图片描述 有一个部门领导表 dept_manager 简况如下: 在这里插入图片描述 请你找出所有非部门领导的员工 emp_no ,以上例子输出: 在这里插入图片描述

考察知识点

IN,左外联结,EXISTS

解题思路

1️⃣ 查询的要求是不在 dept_manager 表中的 emp_no,使用 NOT IN + 子查询。MYSQL官方文档中提到 IN 使用时效率不高,推荐使用 EXISTSJOIN

SELECT emp_no 
FROM employees 
WHERE emp_no NOT IN(SELECT DISTINCT emp_no
                   FROM dept_manager)

2️⃣ 使用 LEFT JOIN 来连接两个表,再筛选非 manager 的员工。

SELECT e.emp_no
FROM employees e LEFT JOIN dept_manager d
ON e.emp_no = d.emp_no 
WHERE dept_no IS NULL

3️⃣ 使用 NOT EXISTS + 子查询 的方式。

SELECT emp_no
FROM employees e
WHERE NOT EXISTS(SELECT DISTINCT d.emp_no 
                FROM dept_manager d
                WHERE e.emp_no = d.emp_no)

题目来源:牛客网-SQL数据库实战题

✅ 每日打卡,❤ 点个赞再走吧!!!❤ 在这里插入图片描述 后续会继续分享 Mysql 方面的文章,如果感兴趣的话可以点个关注不迷路哦~。

关注
打赏
1655344294
查看更多评论
立即登录/注册

微信扫码登录

0.0392s