只考虑按电子邮件列之间的相等性筛选此select语句
SELECT t1.*, t2.*
FROM Person t1
INNER JOIN Person t2
WHERE t1.Email=t2.Email
ORDER BY t1.Id, t2.Id;
退货
(1,1), (1,3), (3,1), (3,3)
对于邮件,分别为T1.ID和T2.ID值
anne@example.com
,而且只有
(2,2)
对于
cat@example.com
。如果你考虑另一个过滤器
AND t1.Id > t2.Id
,
SELECT t1.*, t2.*
FROM Person t1
INNER JOIN Person t2
WHERE t1.Email=t2.Email
AND t1.id > t2.id
ORDER BY t1.Id, t2.Id;
那你就只有一个元组了
(3,1)
自从
t1.id > t2.id
只满足ID元组的这种情况。如果你转换
SELECT t1.*, t2.*
到
DELETE t1
(当然,删除
ORDER BY
第二部分),显然你会删除
id = 3
以及具有ID值的左行
1
和
2
,如果您替换
选择T1.*和T2.*
具有
DELETE t2
,那么您将拥有具有ID值的行
二
和
3
.
Demo