sql的intersect 如何處理重復(fù)行

sql
小樊
81
2024-09-27 21:10:48
欄目: 云計(jì)算

在 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è)表,table1table2,它們具有相同的結(jié)構(gòu),如下所示:

table1:
+----+-------+
| id | name  |
+----+-------+
|  1 | Alice |
|  2 | Bob   |
|  3 | Carol |
+----+-------+

table2:
+----+-------+
| id | name  |
+----+-------+
|  2 | Bob   |
|  3 | Carol |
|  4 | Dave  |
+----+-------+

我們想要找到同時(shí)存在于 table1table2 中的名字。可以使用以下查詢:

SELECT name FROM table1
INTERSECT
SELECT name FROM table2;

查詢結(jié)果如下:

+-------+
| name  |
+-------+
| Alice |
| Bob   |
| Carol |
+-------+

可以看到,結(jié)果集中沒(méi)有重復(fù)行。INTERSECT 操作符自動(dòng)去除了重復(fù)的名字。

0