91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL怎么刪除重復的電子郵箱

發布時間:2022-03-09 09:10:22 來源:億速云 閱讀:276 作者:iii 欄目:開發技術

今天小編給大家分享一下SQL怎么刪除重復的電子郵箱的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

SQL題目概述

題目:

編寫一個 SQL 查詢,來刪除 Person 表中所有重復的電子郵箱,重復的郵箱里只保留 Id 最小 的那個。LeetCode原題連接

SQL怎么刪除重復的電子郵箱

https://leetcode-cn.com/problems/delete-duplicate-emails/

Person 表

+----+------------------+
| Id | Email |
+----+------------------+
| 1 | john@example.com |
| 2 | bob@example.com |
| 3 | john@example.com |
+----+------------------+

Id 是這個表的主鍵。

解題思路

  • 通過  自連接  將此表與它自身連接起來,通過電子郵箱列。

  • 然后我們需要找到其他記錄中具有相同電子郵件地址的更大 ID。所以我們通過ID作比較找出大的數據,把這個作為條件添加到WHERE子句中。

  • 因為我們已經得到了要刪除的記錄,然后我們使用DELETE語句實現。

方法實現

根據以上解題思路,我們可以很容易寫出題解。

DELETE 
    pson1
FROM 
    Person pson1,Person pson2
WHERE 
    pson1.Email = pson2.Email AND pson1.Id > pson2.Id

代碼測試

進行代碼測試

SQL怎么刪除重復的電子郵箱

 與預期結果一致,測試成功,用時166ms

SQL怎么刪除重復的電子郵箱

知識點小結

 ?內連接與外連接?

小夢用極簡單的方式帶小伙伴們過一遍內連接與外連接。

 表1 classa             

SQL怎么刪除重復的電子郵箱

表2 classb

SQL怎么刪除重復的電子郵箱

1. 內連接 inner join (join 默認就是內連接)

表1與表2的交集,用上面兩個表演示一下

select 
    classa.id as aid,classb.id as bid 
from 
    classa 
inner join classb on classa.id = classb.id;

 查詢的結果是classa與classb的交集

SQL怎么刪除重復的電子郵箱

2. 左外連接 left join

結果集保留左表的所有行,但右表只包含與左表匹配的行。右表相應的空行為NULL值。

select 
    classa.id as aid,classb.id as bid 
from 
    classa 
left join classb on classa.id = classb.id;

SQL怎么刪除重復的電子郵箱

3. 右外連接 right join

結果集保留右表的所有行,但左表只包含與右表匹配的行。左表相應的空行為NULL值。

select 
    classa.id as aid,classb.id as bid 
from 
    classa 
right join classb on classa.id = classb.id;

SQL怎么刪除重復的電子郵箱

4. 全外連接 full join

會把兩個表所有的行都顯示在結果表中。

select 
    classa.id as aid,classb.id as bid 
from 
    classa 
full join classb on classa.id = classb.id;

小伙伴們注意啦!!!

MySQL不支持full join!!!MySQL不支持full join!!!MySQL不支持full join!!!

重要的事情要說三遍!!!那怎么實現和full join一樣的效果呢?那就要通過使用union來實現,具體實現SQL語句如下

select 
    classa.id as aid,classb.id as bid 
from 
    classa left join classb on classa.id = classb.id
union
select 
    classa.id as aid,classb.id as bid 
from 
   classa right join classb on classa.id = classb.id;

SQL怎么刪除重復的電子郵箱

以上就是“SQL怎么刪除重復的電子郵箱”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

漳平市| 上虞市| 河津市| 麻城市| 清镇市| 宝丰县| 元江| 确山县| 祁门县| 健康| 嘉黎县| 新巴尔虎左旗| 额尔古纳市| 确山县| 古田县| 兴和县| 长武县| 长宁区| 嘉兴市| 永和县| 崇明县| 安仁县| 蕉岭县| 新龙县| 红河县| 长寿区| 神农架林区| 灵寿县| 玉屏| 安宁市| 周口市| 克东县| 玉山县| 南和县| 贵定县| 渝中区| 隆安县| 和顺县| 正阳县| 花莲县| 安丘市|