在 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
操作符自动去除了重复的名字。