今天小编给大家分享一下sql怎么删除重复的电子邮箱的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。SQL题目概述题目:编写一个
今天小编给大家分享一下sql怎么删除重复的电子邮箱的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
题目:
编写一个 SQL 查询,来删除 Person
表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。LeetCode原题连接
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 pson1FROM Person pson1,Person pson2WHERE pson1.Email = pson2.Email AND pson1.Id > pson2.Id
进行代码测试
与预期结果一致,测试成功,用时166ms
⭐内连接与外连接⭐
小梦用极简单的方式带小伙伴们过一遍内连接与外连接。
表1 classa
表2 classb
表1与表2的交集,用上面两个表演示一下
select classa.id as aid,classb.id as bid from classa inner join classb on classa.id = classb.id;
查询的结果是classa与classb的交集
结果集保留左表的所有行,但右表只包含与左表匹配的行。右表相应的空行为NULL值。
select classa.id as aid,classb.id as bid from classa left join classb on classa.id = classb.id;
结果集保留右表的所有行,但左表只包含与右表匹配的行。左表相应的空行为NULL值。
select classa.id as aid,classb.id as bid from classa right join classb on classa.id = classb.id;
会把两个表所有的行都显示在结果表中。
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.idunionselect classa.id as aid,classb.id as bid from classa right join classb on classa.id = classb.id;
以上就是“SQL怎么删除重复的电子邮箱”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。
--结束END--
本文标题: SQL怎么删除重复的电子邮箱
本文链接: https://lsjlt.com/news/324278.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0