基本MySQL命令的含义

基本MySQL命令的含义,mysql,sql-delete,Mysql,Sql Delete,我是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”的用法是什么意思?假设您有一个表,名为Person\u office\u job\u j

我是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”的用法是什么意思?

假设您有一个表,名为
Person\u office\u job\u join
,这个表非常丰富。
p1
p2
是别名。这意味着您可以简化对表的引用

e、 g

选择*
从左起加入人员\办公室\工作\加入poj
其中poj.person\u id=person.id

SELECT * 
FROM person LEFT JOIN person_office_job_join  
WHERE person_office_job_join.person_id =  person.id

在您的特定情况下,它允许您加入同一个表,从而找到重复的表。想象一个更复杂的查询,在这里您需要做更多的工作,同时指定表名。有一个速记参考是很好的。

嗨,
个人p1
是一个。我应该先声明“个人为p1”吗?谢谢你的回复。“个人办公室工作加入poj”似乎是“个人办公室工作加入poj”的缩写。是的,这是正确的