1965. 丢失信息的雇员

本文介绍如何使用SQL查询从Employees和Salaries表中找出员工姓名或薪水缺失的雇员ID,通过UNION操作结合NOT IN子句,按ID排序并提供示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表: 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号雇员的薪水信息丢失了。

答案:

select employee_id from employees where employee_id not in (select employee_id from salaries)
union
select employee_id from salaries where employee_id not in (select employee_id from employees) 
order by employee_id

此题主要考察了union的用法,SQL UNION 子句
SQL UNION 子句
 SQL UNION 子句/运算符用于将两个或者更多的 SELECT 语句的运算结果组合起来。
 在使用 UNION 的时候,每个 SELECT 语句必须有相同数量的选中列、相同数量的列表达式、相同的数据类型,并且它们出现的次序要一致,不过长度不一定要相同。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/employees-with-missing-information
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天元白手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值