在 SQL 中,使用 INTERSECT
操作符返回两个查询共有的结果集。当结果集中存在重复行时,INTERSECT
会自动去除这些重复行。换句话说,INTERSECT
操作符返回的结果集是唯一的。
以下是一个简单的示例,说明如何使用 INTERSECT
处理重复行:
假设我们有两个表,table1
和 table2
,它们具有相同的结构,如下所示:
table1:
+----+-------+
| id | name |
+----+-------+
| 1 | Alice |
| 2 | Bob |
| 3 | Carol |
+----+-------+
table2:
+----+-------+
| id | name |
+----+-------+
| 2 | Bob |
| 3 | Carol |
| 4 | Dave |
+----+-------+
我们想要找到同时存在于 table1
和 table2
中的名字。可以使用以下查询:
SELECT name FROM table1
INTERSECT
SELECT name FROM table2;
查询结果如下:
+-------+
| name |
+-------+
| Alice |
| Bob |
| Carol |
+-------+
可以看到,结果集中没有重复行。INTERSECT
操作符自动去除了重复的名字。