半连接

例如,可以使用半连接查询来查找至少有一个薪水超过 2500 的员工的所有部门。

SELECT * FROM departments 
   WHERE EXISTS 
   (SELECT 1 FROM employees 
       WHERE departments.department_id = employees.department_id 
       AND employees.salary > 2500)
   ORDER BY department_name; 

这比完全加入替代方案更有效,因为内部加入员工然后给出一个详细说明薪水必须大于 2500 的 where 子句可以多次返回同一个部门。如果消防部门的 n 员工都有 3000 工资,select * from departments, employees 与必要的工具加入,我们的 where 子句将返回消防部门 n 次。