leetcode刷题MySQL题解十二

Posted hhh江月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode刷题MySQL题解十二相关的知识,希望对你有一定的参考价值。

leetcode刷题mysql题解十二

题目叙述

表: Employees

±------------±--------+
| Column Name | Type |
±------------±--------+
| employee_id | int |
| name | varchar |
±------------±--------+
employee_id 是这个表的主键。
每一行表示雇员的id 和他的姓名。
表: Salaries

±------------±--------+
| Column Name | Type |
±------------±--------+
| employee_id | int |
| salary | int |
±------------±--------+
employee_id is 这个表的主键。
每一行表示雇员的id 和他的薪水。

写出一个查询语句,找到所有 丢失信息 的雇员id。当满足下面一个条件时,就被认为是雇员的信息丢失:

雇员的 姓名 丢失了,或者
雇员的 薪水信息 丢失了,或者
返回这些雇员的id employee_id , 从小到大排序 。

查询结果格式如下面的例子所示。

示例 1:

输入:
Employees table:
±------------±---------+
| employee_id | name |
±------------±---------+
| 2 | Crew |
| 4 | Haven |
| 5 | Kristian |
±------------±---------+
Salaries table:
±------------±-------+
| employee_id | salary |
±------------±-------+
| 5 | 76071 |
| 1 | 22517 |
| 4 | 63539 |
±------------±-------+
输出:
±------------+
| employee_id |
±------------+
| 1 |
| 2 |
±------------+
解释:
雇员1,2,4,5 都工作在这个公司。
1号雇员的姓名丢失了。
2号雇员的薪水信息丢失了。

题目解答

# Write your MySQL query statement below
# 如果信息缺失的话就会导致某一个employee_id只会出现一次的
select employee_id from (
    select employee_id from employees
    union all 
    select employee_id from salaries
) as t
group by 
    employee_id
having 
    count(employee_id) = 1
order by 
    employee_id;


题目运行

以上是关于leetcode刷题MySQL题解十二的主要内容,如果未能解决你的问题,请参考以下文章

leetcode刷题MySQL题解二十二

leetcode刷题MySQL题解五

leetcode刷题MySQL题解十三

leetcode刷题MySQL题解十

leetcode刷题MySQL题解十

leetcode刷题MySQL题解一