在 SQL 中,INTERSECT
是一个集合操作符,用于返回两个或多个 SELECT 查询共有的结果。换句话说,它允许你找到两个查询都返回的行。
以下是使用 INTERSECT
的基本语法:
SELECT column1, column2, ...
FROM table1
WHERE condition1
INTERSECT
SELECT column1, column2, ...
FROM table2
WHERE condition2;
在这个例子中,我们从 table1
和 table2
中选择相同的列,并返回满足 condition1
和 condition2
的行。
请注意以下几点:
INTERSECT
操作要求参与运算的两个 SELECT 语句具有相同数量的列。这些列必须具有相似的数据类型。INTERSECT
操作默认会去除重复的行。如果你希望保留重复的行,可以使用 UNION
代替。INTERSECT
操作的结果也将为空集。下面是一个具体的例子,假设我们有两个表 employees_old
和 employees_new
,我们想要找出同时在这两个表中工作的员工:
SELECT employee_id, first_name, last_name
FROM employees_old
WHERE department = 'Sales'
INTERSECT
SELECT employee_id, first_name, last_name
FROM employees_new
WHERE department = 'Sales';
这个查询将返回同时在 employees_old
和 employees_new
的销售部门工作的员工的 ID、名字和姓氏。