SQL今日一题(3):内连接

本文是SQL隔日一题系列的第3篇,目标是查询当前部门领导(dept_manager.to_date='9999-01-01')的薪水详情及其部门编号(dept_no)。通过salaries表与dept_manager表的内连接实现,要求以salaries.emp_no升序排序,dept_no列位于最后。文章提供了where连接和内连接两种解题思路,并强调了'当前'状态的判断条件。此外,还推荐了与数据分析相关的内容。

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

这是SQL隔日一题的第3篇文章

题目描述

查找各个部门当前(dept_manager.to_date='9999-01-01')领导当前(salaries.to_date='9999-01-01')薪水详情以及其对应部门编号dept_no

(注:请以salaries表为主表进行查询,输出结果以salaries.emp_no升序排序,并且请注意输出结果,dept_no列是最后一列)

这题用到了和之前employees表不同的salaries表和dept_manager表,这两个表都有emp_no这个字段,可以用来做连接。

 


 

思路

考察表连接,因此可以有两种思路
思路1:where连接
思路2:内连接

答案

# 思路1:where连接
select s.emp_no,s.salary,s.from_date,s.to_date,m.dept_no
from salaries as s,dept_manager as m
where s.emp_no = m.emp_no
and s.to_date = '9999-01-01' and m.to_date = '9999-01-01'
order by s.emp_no 

where连接两个表,on两边是公共字段,注意这题还有限制条件,即“当前”的意思是to_date = '9999-01-01',以及按emp_no降序排列。

# 思路2:内连接
select s.emp_no,s.salary,s.from_date,s.to_date,d.dept_no
from salaries as s inner join dept_manager as d
on d.emp_no = s.emp_no 
where  d.to_date = '9999-01-01' and s.to_date = '9999-01-01';

inner join …on 内连接,传递给on的条件与传递给where的相同,SQL中的几种连接的区别如下图所示。

 


猜你喜欢:
数据分析应关注AARRR模型的哪些指标

泰坦尼克号数据分析

深入浅出数据分析

《吊打分析师》实战—我要租个好房

为什么要学统计学:赤裸裸的统计学

成为数据分析师的第三年,我写了10W字

@ 作者:可乐
@ 公众号/知乎专栏/头条/简书:可乐的数据分析之路
@加个人微信:data_cola,备注:进群,拉你入 可乐的数据分析群 和各行各业的小伙伴交流探讨数据分析相关内容

微信公众号

微信公众号

个人微信号

个人微信号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

进击的可乐!

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

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

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

打赏作者

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

抵扣说明:

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

余额充值