• 获取所有非manager的员工emp_no


    个人网站

    文章首发于公众号小肖学数据分析

    题目来自牛客网

    描述

    有一个员工表employees简况如下:

    emp_nobirth_datefirst_namelast_namegenderhire_date
    100011953-09-02GeorgiFacelloM1986-06-26
    100021964-06-02BezalelSimmelF1985-11-21
    100031959-12-03PartoBamfordM1986-08-28

    有一个部门领导表dept_manager简况如下:

    dept_noemp_nofrom_dateto_date
    d001100021996-08-039999-01-01
    d002100031990-08-059999-01-01

    请你找出所有非部门领导的员工emp_no,以上例子输出:

    emp_no
    10001

    解题思路:

    方案1: 员工表员工id不在部门表内

    方案2: 采用左连接 ,取部门表数据为空的结果

    1. -- 方案1 NOT IN+子查询
    2. select emp_no
    3. from employees
    4. where emp_no not in (select emp_no from dept_manager);
    5. -- 方案2 LEFT JOIN左连接 判断IS NULL
    6. SELECT e.emp_no,d.dept_no,d.emp_no
    7. FROM employees AS e
    8. LEFT JOIN dept_manager AS d
    9. ON e.emp_no=d.emp_no
    10. WHERE dept_no IS NULL;
    1. --测试数据
    2. drop table if exists `dept_manager` ;
    3. drop table if exists `employees` ;
    4. CREATE TABLE `dept_manager` (
    5. `dept_no` char(4) NOT NULL,
    6. `emp_no` int(11) NOT NULL,
    7. `from_date` date NOT NULL,
    8. `to_date` date NOT NULL,
    9. PRIMARY KEY (`emp_no`,`dept_no`));
    10. CREATE TABLE `employees` (
    11. `emp_no` int(11) NOT NULL,
    12. `birth_date` date NOT NULL,
    13. `first_name` varchar(14) NOT NULL,
    14. `last_name` varchar(16) NOT NULL,
    15. `gender` char(1) NOT NULL,
    16. `hire_date` date NOT NULL,
    17. PRIMARY KEY (`emp_no`));
    18. INSERT INTO dept_manager VALUES('d001',10002,'1996-08-03','9999-01-01');
    19. INSERT INTO dept_manager VALUES('d002',10003,'1990-08-05','9999-01-01');
    20. INSERT INTO employees VALUES(10001,'1953-09-02','Georgi','Facello','M','1986-06-26');
    21. INSERT INTO employees VALUES(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21');
    22. INSERT INTO employees VALUES(10003,'1959-12-03','Parto','Bamford','M','1986-08-28');

    每日更新:更多资料请关注公众号小肖学数据分析

    公众号回复加油即可获取PDF版本

  • 相关阅读:
    React源码分析2-深入理解fiber
    java.lang.Enum类下getDeclaringClass()方法起什么作用呢?
    vue 和 后端交互
    Minecraft 1.16.5 生化8 模组 1.9版本 1.18版本同步
    pytorch函数reshape()和view()的区别及张量连续性
    centos 7安装podman(类似docker)
    Java项目:SSM汽车维修中心管理系统
    OpenGL基本架构知识
    multisim仿真 74LS148D芯片
    与 TensorFlow集成简介
  • 原文地址:https://blog.csdn.net/qq_41387939/article/details/134532457