记录sql语句用法

文章提供了一个SQL查询示例,用于找出员工表中姓名或薪水信息缺失的雇员ID。查询结合了Employees和Salaries两个表,利用UNIONALL和GROUPBY语句,筛选出信息不完整的雇员,并按ID升序排列。结果显示,ID为1和2的雇员信息有缺失。
摘要由CSDN通过智能技术生成

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

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

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

语句

union all
UNION 内部的 SELECT 语句必须拥有相同数量的列;
列也必须拥有相似的数据类型(实际非必须);
同时,每条 SELECT 语句中列的顺序必须相同。

UNION 只会选取不同的值。

union all
UNION ALL 来选取重复的值

select employee_id
from (
select employee_id from Employees
union all
select employee_id from Salaries
) as t
group by employee_id
having count(*) = 1
order by employee_id ASC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值