一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - SQL刪除重復的電子郵箱力扣題目解答流程

SQL刪除重復的電子郵箱力扣題目解答流程

2022-03-08 21:36超夢夢夢夢 Sql Server

小伙伴們都知道,不管是在學習中還是日常工作中,幾乎天天是要跟數據庫打交道的,為了更好的操作數據庫,我們的SQL知識儲備是必不可少的

 

寫在前面

想要掌握好SQL,那少不了每天的練習與學習。接下來小夢會帶領小伙伴們一起每天刷一道LeetCode-數據庫(SQL)相關的題目,然后在文章后例舉相關知識點幫助小伙伴們學習與鞏固,更好的掌握SQL。

小伙伴們如果在學習過程中有不明白的地方,歡迎評論區留言提問,小夢定知無不言,言無不盡。

SQL刪除重復的電子郵箱力扣題目解答流程

 

SQL題目概述

題目:

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

SQL刪除重復的電子郵箱力扣題目解答流程

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

Person 表

+----+------------------+
| Id | Email |
+----+------------------+
| 1 | [email protected] |
| 2 | [email protected] |
| 3 | [email protected] |
+----+------------------+

Id 是這個表的主鍵。

 

解題思路

  • 通過  自連接  將此表與它自身連接起來,通過電子郵箱列。
  • 然后我們需要找到其他記錄中具有相同電子郵件地址的更大 ID。所以我們通過ID作比較找出大的數據,把這個作為條件添加到WHERE子句中。
  • 因為我們已經得到了要刪除的記錄,然后我們使用DELETE語句實現。

 

方法實現

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

?
1
2
3
4
5
6
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的交集,用上面兩個表演示一下

?
1
2
3
4
5
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值。

?
1
2
3
4
5
select
    classa.id as aid,classb.id as bid
from
    classa
left join classb on classa.id = classb.id;

SQL刪除重復的電子郵箱力扣題目解答流程

 

3. 右外連接 right join

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

?
1
2
3
4
5
select
    classa.id as aid,classb.id as bid
from
    classa
right join classb on classa.id = classb.id;

SQL刪除重復的電子郵箱力扣題目解答流程

 

4. 全外連接 full join

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

?
1
2
3
4
5
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語句如下

?
1
2
3
4
5
6
7
8
9
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刪除重復的電子郵箱解答流程的文章就介紹到這了,更多相關SQL 刪除重復郵箱內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_42306958/article/details/122898528

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 调教校花浣肠开菊 | 五月香婷 | 亚洲国产精品久久久久久网站 | 日本一区二区不卡久久入口 | 91porny新九色在线 | 久久99热狠狠色一区二区 | 美女福利视频午夜在线 | 91李宗精品72集在线观看 | 色综合天天娱乐综合网 | www.四虎影| 亚洲 无码 制服 日韩 | 互换娇妻爽文100系列小说 | 美女漫画网 | 新新电影理论中文字幕 | 男女肉粗暴进来下面好紧 | 久久这里只有精品视频9 | 岛国a香蕉片不卡在线观看 荡女淫春2古装 | 欧美人shou交在线播放 | 亚洲国产成人久久综合一 | 久久久无码精品亚洲A片猫咪 | 成人精品一区二区三区 | 久久AV国产麻豆HD真实乱 | 亚洲精品第五页 | www.在线观看视频 | 欧美一级艳片视频免费观看 | 五月天国产精品 | 欧美日韩一区二区三区在线观看 | 羞羞麻豆国产精品1区2区3区 | spy2wc48美女撒尿 | 国产精品青青青高清在线 | 人成午夜免费大片在线观看 | 国产成人亚洲精品乱码在线观看 | 齐天大性之七仙女欲春迅雷链接 | ts人妖系列在线专区 | 羞羞一区二区三区四区片 | 国产精品思瑞在线观看 | 日本中文字幕高清 | 精品欧美一区二区在线观看欧美熟 | 99久久6er热免费精品 | 欧美综合精品一区二区三区 | 国产免费小视频 |