使用Exists代替distinct高效去重


背景:职员表emp (emp_no,emp_name,dept_no);部门表dept (dept_no,dept_name)

需求:查找职员表中涉及到的部门

distinct

SELECT DISTINCT
	dept.dept_no,
	dept.dept_name 
FROM
	emp,
	dept 
WHERE
	emp.dept_no = emp.dept_no;

exists

SELECT
	dept.dept_no,
	dept.dept_name 
FROM
	dept
WHERE
	EXISTS (
	SELECT NULL 
	FROM
		emp
WHERE
	dept.dept_no = emp.dept_no)