我是SQL的新手,在这个“删除重复”的问题上我很困惑。
名为'Person‘的表包含两列: Id和Email,我想删除该表中所有重复的电子邮件条目,只保留基于其最小Id的唯一电子邮件条目。
答案应该是这样的:
DELETE p1
FROM Person p1, Person p2
WHERE p1.Email = p2.Email
AND p1.Id > p2.Id我的问题是,这里的p1是什么?“Person p1”这个用法是什么意思?
发布于 2021-01-07 05:16:37
假设您有一个名为person_office_job_join的表,这张表很难吃。p1和p2是别名。这意味着您可以简化对表的引用。
例如:
SELECT *
FROM person LEFT JOIN person_office_job_join poj
WHERE poj.person_id = person.id等同于
SELECT *
FROM person LEFT JOIN person_office_job_join
WHERE person_office_job_join.person_id = person.id在您的特定情况下,它允许您在同一个表上进行连接,从而找到重复项。假设有一个更复杂的查询,您希望在指定表名的同时执行更多操作。有一个速记参考是很棒的。
https://stackoverflow.com/questions/65603315
复制相似问题