这是SQL今日一题的第4篇
题目描述
查找所有已经分配部门的员工的last_name和first_name以及dept_no(请注意输出描述里各个列的前后顺序)
这道题用到employees表和dept_emp表,这两个表以emp_no为公共字段。
思路
要用表连接来做,注意题目描述,是已经分配部门的员工的信息,应使用内连接,如果使用外连接的话,那么就应该以dept_emp为主表去连接employees表。
思路1:where连接
思路2:内连接
思路3:左连接
答案
# where 连接
select e.last_name,e.first_name,d.dept_no
from dept_emp as d,employees as e
where e.emp_no = d.emp_no
where连接已经说了很多次,注意两个表的公共字段即可。
# 内连接
SELECT e.last_name,e.first_name,d.dept_no
FROM employees AS e INNER JOIN dept_emp AS d
ON e.emp_no=d.emp_no
可以用where连接的就可以用inner join内连接,只是将where换成了on
# 左连接
select e.last_name,e.first_name,d.dept_no
from dept_emp as d left join employees as e
on e.emp_no = d.emp_no
左连接需要注意以哪个表为主表去连接,题目是要查找已分配部门的员工,所以要用dept_emp为主表去左连接employees表(employees表中含有未分配部门的员工)。
猜你喜欢:
数据分析应关注AARRR模型的哪些指标
@ 作者:可乐
@ 公众号/知乎专栏/头条/简书:可乐的数据分析之路
@加个人微信:data_cola,备注:进群,拉你入 可乐的数据分析群 和各行各业的小伙伴交流探讨数据分析相关内容
微信公众号
个人微信号