假设我叫了下表
Email
,在哪里
Id
是主键:
+----+------------------+
| Id | Email |
+----+------------------+
| 1 | anne@example.com |
| 2 | cat@example.com |
| 3 | anne@example.com |
+----+------------------+
我正在尝试删除除第一个之外的所有重复项。因此,在这种情况下,所需的输出将是
+----+------------------+
| Id | Email |
+----+------------------+
| 1 | anne@example.com |
| 2 | cat@example.com |
+----+------------------+
在问了一个朋友之后,我发现这个解决方案是有效的:
DELETE t1 FROM Person t1 INNER JOIN Person t2
Where t1.Email=t2.Email and t1.Id > t2.Id
我的问题是为什么这样做有效?尤其是当
t1
内连
t2
在
电子邮件
字段,程序如何知道
anne@example.com
应该与哪个匹配,因为这个值有多个不同的ID?