• 牛客SQL题解-找出所有非部门领导的员工emp_no


    题目描述

    有一个员工表employees简况如下:
     
    有一个部门领导表dept_manager简况如下:
     
    建表语句如下:
     
    CREATE TABLE `employees` (
    `emp_no` int(11) NOT NULL,
    `birth_date` date NOT NULL,
    `first_name` varchar(14) NOT NULL,
    `last_name` varchar(16) NOT NULL,
    `gender` char(1) NOT NULL,
    `hire_date` date NOT NULL,
    PRIMARY KEY (`emp_no`));
    CREATE TABLE `dept_manager` (
    `dept_no` char(4) NOT NULL,
    `emp_no` int(11) NOT NULL,
    `from_date` date NOT NULL,
    `to_date` date NOT NULL,
    PRIMARY KEY (`emp_no`,`dept_no`)); 
    请你找出所有非部门领导的员工emp_no,以上例子输出:

    答案详解

    方法一

    先使用LEFT JOIN连接两张表,再从此表中选出dept_no值为NULL对应的emp_no记录(直接使用left Excluding JOIN)

    select employees.emp_no from employees left JOIN dept_manager
    on employees.emp_no=dept_manager.emp_no
    where dept_no is null

    方法二

    使用not in 选出在employees但不在dept_manager中的emp_no记录

    select emp_no from employees
    where emp_no not in(
        select emp_no
        from dept_manager
    )

    方法三

    select emp_no from employees
    where not exists(
        select emp_no
        from dept_manager
        where emp_no=employees.emp_no
    )
  • 相关阅读:
    webpack4+vue 打包 就是没效果?求解!!!
    Vue.js——6.创建组件
    Vue.js——5.生命周期
    Vue.js——4.指令 笔记
    Vue.js——3.增删改查
    Vue.js——2.第一个Vue程序
    Vue.js——1.初识Vue
    Codeforces 1285D Dr. Evil Underscores
    Codeforces 437B The Child and Set
    ZhongHaoxi P105-3 洗衣
  • 原文地址:https://www.cnblogs.com/Bluebells/p/14374627.html
Copyright © 2020-2023  润新知