SQL实战(4)--查找已分配部门员工的last

    技术2022-07-21  86

    目录

    题型一:内连接

    题型二:外连接


    知识点:多表查询

    题型一:内连接

    题目描述

    查找所有已经分配部门的员工的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

     

    Processed: 0.009, SQL: 9