亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

聊城市| 恭城| 东乌珠穆沁旗| 崇州市| 申扎县| 咸阳市| 汉阴县| 谷城县| 闻喜县| 武功县| 虹口区| 乃东县| 珲春市| 东丰县| 高州市| 梓潼县| 察哈| 资溪县| 绿春县| 阿巴嘎旗| 明光市| 湘潭县| 赫章县| 巴中市| 永寿县| 封开县| 成武县| 辽中县| 葵青区| 雷山县| 当阳市| 静安区| 尖扎县| 神农架林区| 伊川县| 营山县| 蛟河市| 易门县| 迁安市| 祁东县| 攀枝花市|