题目:196.删除重复的电子邮箱

题目来源:

        leetcode题目,网址:196. 删除重复的电子邮箱 - 力扣(LeetCode)

解题思路:

        先让Person表与自身交叉连接,再从中选出email相同并且  id 较大的id号,最后删除在其中的 id 即可。

解题代码:

# Please write a DELETE statement and DO NOT write a SELECT statement.
# Write your MySQL query statement below
delete from person where id in(
       select t.id from (
    select distinct a.id 
    from Person a cross join Person b 
    where a.email=b.email and a.id>b.id) as t) 
 

总结:

        第一次提交的时候,sql语句没有select t.id from()as t,报错,delete 语句中直接嵌套select语句时,不能使用同一张表;第二次提交时,sql语句没有 as t, 报错,每一个派生出来的表都必须有一个自己的别名。但是我不知道什么时候会产生新表(as t 时?)。

        官方题解直接delete p1 from Person p1,Person p2......更为简洁。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值