牛客网SQL-第4题-请你查找所有已经分配部门的员工的last_name和first_name以及dept_no,未分配的部门的员工不显示

请你查找所有已经分配部门的员工的last_name和first_name以及dept_no,未分配的部门的员工不显示

我这是第4题, 跳过哦第3题, 但是我刷牛客的SQL是按照的简易程度顺序的, 并不是按照题目顺序, 所以, 想要第3题的话, 那就等一段时间哦

employees简况如下:
牛客网SQL-第4题-请你查找所有已经分配部门的员工的last_name和first_name以及dept_no,未分配的部门的员工不显示_第1张图片
dept_emp简况如下:
牛客网SQL-第4题-请你查找所有已经分配部门的员工的last_name和first_name以及dept_no,未分配的部门的员工不显示_第2张图片
得到正确结果如下图:
牛客网SQL-第4题-请你查找所有已经分配部门的员工的last_name和first_name以及dept_no,未分配的部门的员工不显示_第3张图片
我解题源码:

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;

题目解析:
我用的是内连接:INNER JOIN
其实这个题是可以用左连接,右连接和笛卡尔积(交叉连接)都可以
交叉连接:

select e.last_name, e.first_name,d.dept_no
from dept_emp d,employees e
where e.emp_no=d.emp_no;

左连接:

SELECT e.last_name, e.first_name, d.dept_no
FROM dept_emp d
LEFT JOIN employees e
ON d.emp_no = e.emp_no;

右连接与左连接差不多, 我个人用的是内连接, 其他解题源码是在网上找的, 有过验证, 是可以的

这题的考点就是在连接问题, 所以只要理解好问题, 所有就很好解决

你可能感兴趣的:(mySQL,数据库,mysql,sql)