题目描述
有一个员工表,employees简况如下:
有一个部门表,dept_emp简况如下:
建表语句如下:
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`));
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`));
请你查找所有已经分配部门的员工的last_name和first_name以及dept_no,未分配的部门的员工不显示,以上例子如下:
题解SQL语句
select e.last_name,e.first_name,d.dept_no
from employees as e
join dept_emp as d
on d.emp_no = e.emp_no
where d.dept_no is not null
使用INNER JOIN过滤的解法
select e.last_name,e.first_name,d.dept_no
from employees as e
INNER join dept_emp as d
ON d.emp_no = e.emp_no
知识点
JOIN
SQL(MySQL) JOIN 用于根据两个或多个表中的字段之间的关系,从这些表中得到数据。
JOIN 通常与 ON 关键字搭配使用,