描述
有一个员工表employees简况如下:
有一个部门领导表dept_manager简况如下:
建表语句如下:
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_manager (dept_no char(4) NOT NULL,emp_no int(11) NOT NULL,from_date date NOT NULL,to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no));
请你找出所有非部门领导的员工emp_no,以上例子输出:
思路:
1.只需要找到employees 的emp_no 不在dept_manager 范围内的员工就行。
SELECT emp_no
FROM employees
WHERE emp_no NOT IN(
SELECT emp_no
FROM dept_manager
);
2.先使用LEFT JOIN连接两张表,再从此表中选出dept_no值为NULL对应的emp_no记录
select e.emp_no from employees as e left join dept_manager as d on e.emp_no = d.emp_no
where d.dept_no is null

京公网安备 11010502036488号