牛客SQL练习第4题

it2023-02-01  53

题目描述

查找所有已经分配部门的员工的last_name和first_name以及dept_no(请注意输出描述里各个列的前后顺序)

CREATE TABLE `dept_emp` ( `emp_no` int(11) NOT NULL, `dept_no` char(4) NOT NULL, `from_date` date NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`)); CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` char(1) NOT NULL, `hire_date` date NOT NULL, PRIMARY KEY (`emp_no`));

解答:

select e.last_name,e.first_name,de.dept_no from employees e, dept_emp de where e.emp_no=de.emp_no select e.last_name,e.first_name,de.dept_no from employees e join dept_emp de on e.emp_no=de.emp_no

左连接也可以,因为部门-员工表中的员工是员工表的子集

select e.last_name,e.first_name,de.dept_no from dept_emp de left join employees e on de.emp_no = e.emp_no
最新回复(0)