【SQL】查找所有员工的last_name和first_name以及对应的dept_name

查找所有员工的last_name和first_name以及对应的dept_name

http://www.nowcoder.com/questionTerminal/5a7975fabe1146329cee4f670c27ad55

题目有三个表:

  1. 【部门的信息】departments: dept_no, dept_name
  2. 【部门员工所属】dept_emp: emp_no, dept_no,...
  3. 【员工的信息】employees: emp_no, first_name, last_name,...

题目要求:
思路:

  1. 列出employees表里所有员工last_name, first_name,
  2. 根据employees中emp_no对应dept_emp中的dept_no,没有分配的员工找不到对应-->采用LEFT JOIN
  3. 再根据dept_no对应departments表中的dept_name,没有分配的员工找不到对应-->采用LEFT JOIN
SELECT last_name, first_name, dept_name
FROM employees AS e LEFT JOIN (SELECT emp_no, dept_name
                               FROM dept_emp AS de LEFT JOIN departments AS d
                               ON de.dept_no = d.dept_no)k
ON e.emp_no = k.emp_no;
全部评论
请问下,这种方法与 三个表直接联结,分别在什么情况下使用呢? SELECT em.last_name, em.first_name, dp.dept_name FROM (employees AS em LEFT JOIN dept_emp AS de ON em.emp_no = de.emp_no) LEFT JOIN departments AS dp ON de.dept_no = dp.dept_no
1
送花
回复
分享
发布于 2020-07-08 15:15

相关推荐

28 1 评论
分享
牛客网
牛客企业服务