目录
题型一:内连接
题型二:外连接
知识点:多表查询
题目描述
查找所有已经分配部门的员工的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,d.dept_no from employees as e inner join dept_emp as d on e.emp_no=d.emp_no select last_name,first_name,dept_no from employees as e , dept_emp as d on e.emp_no=d.emp_no题目描述
查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括暂时没有分配具体部门的员工
分析:
说明员工名字必须有,部门编号可以为空,需要左连接
employees表里面的所有都显示,employees在左边所以 left join select
select e.last_name,e.first_name,d.dept_no from employees as e left outer join dept_emp as d on e.emp_no=d.emp_no