在 SQL 中,使用 INTERSECT
操作符返回兩個(gè)查詢共有的結(jié)果集。當(dāng)結(jié)果集中存在重復(fù)行時(shí),INTERSECT
會(huì)自動(dòng)去除這些重復(fù)行。換句話說(shuō),INTERSECT
操作符返回的結(jié)果集是唯一的。
以下是一個(gè)簡(jiǎn)單的示例,說(shuō)明如何使用 INTERSECT
處理重復(fù)行:
假設(shè)我們有兩個(gè)表,table1
和 table2
,它們具有相同的結(jié)構(gòu),如下所示:
table1:
+----+-------+
| id | name |
+----+-------+
| 1 | Alice |
| 2 | Bob |
| 3 | Carol |
+----+-------+
table2:
+----+-------+
| id | name |
+----+-------+
| 2 | Bob |
| 3 | Carol |
| 4 | Dave |
+----+-------+
我們想要找到同時(shí)存在于 table1
和 table2
中的名字。可以使用以下查詢:
SELECT name FROM table1
INTERSECT
SELECT name FROM table2;
查詢結(jié)果如下:
+-------+
| name |
+-------+
| Alice |
| Bob |
| Carol |
+-------+
可以看到,結(jié)果集中沒(méi)有重復(fù)行。INTERSECT
操作符自動(dòng)去除了重復(fù)的名字。