196 刪除重複的電子郵箱(SQL)

2021-10-18 07:43:23 字數 1110 閱讀 7335

一、題目描述

編寫乙個 sql 查詢,來刪除 person 表中所有重複的電子郵箱,重複的郵箱裡只保留 id 最小 的那個。

±—±-----------------+

| id | email |

±—±-----------------+

| 1 | [email protected] |

| 2 | [email protected] |

| 3 | [email protected] |

±—±-----------------+

id 是這個表的主鍵。

例如,在執行你的查詢語句之後,上面的 person 表應返回以下幾行:

±—±-----------------+

| id | email |

±—±-----------------+

| 1 | [email protected] |

| 2 | [email protected] |

±—±-----------------+

二、題解

方法一:delete + join

我們可以使用如下**將person表與其自身結合起來

select

*from person p1 join person p2 on p1.email = p2.email;

然後查詢出id較大的

select

*from person p1 join person p2 on p1.email = p2.email and p1.id > p2.id;``

`最後轉化為delete子句``

`sql

delete p1

from person p1 join person p2

on p1.email = p2.email and p1.id>p2.id;

當然也可可以使用where語句

delete p1 from person p1,person p2

where p1.email = p2.email and p1.id>p2.id;

196 刪除重複的電子郵箱

編寫乙個 sql 查詢,來刪除 person 表中所有重複的電子郵箱,重複的郵箱裡只保留 id 最小 的那個。id email 1 john example.com 2 bob example.com 3 john example.com id 是這個表的主鍵。例如,在執行你的查詢語句之後,上面的 ...

leetcode 196 刪除重複的電子郵箱

編寫乙個sql查詢來刪除person表中所有重複的電子郵件,在重複的郵件中只保留id最小的郵件。id email 1 john example.com 2 bob example.com 3 john example.com id是這個表的主鍵.例如,在執行查詢之後,上面的person表應顯示以下幾...

LeetCode 196 刪除重複的電子郵箱

題目 編寫乙個 sql 查詢,來刪除 person 表中所有重複的電子郵箱,重複的郵箱裡只保留 id 最小 的那個。id email 1 john example.com 2 bob example.com 3 john example.com id 是這個表的主鍵。例如,在執行你的查詢語句之後,上...