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