LeetCode 중복 이메일 삭제

제목 설명:\color {blue} 제목 설명: 제목 설명: Person 테이블의 모든 중복된 전자 메일을 삭제하기 위해 SQL 조회를 작성합니다. 중복된 메일박스에는 Id의 가장 작은 것만 보존합니다.
+----+------------------+
| Id | Email            |
+----+------------------+
| 1  | [email protected] |
| 2  | [email protected]  |
| 3  | [email protected] |
+----+------------------+

Id는 이 시계의 메인 키입니다.예를 들어, 쿼리 문구를 실행한 후 위의 Person 테이블은 다음 행을 반환해야 합니다.
+----+------------------+
| Id | Email            |
+----+------------------+
| 1  | [email protected] |
| 2  | [email protected]  |
+----+------------------+

사고방식 분석:\color {blue} 사고방식 분석: 사고방식 분석: 연결을 통해 같은 이메일이 존재하는지 판단하고 Id가 더 크며 존재하면 id가 비교적 큰 기록을 삭제합니다.
코드 구현:\color {blue} 코드 구현: 코드 구현:
delete p1
from Person p1
# ( )
inner join Person p2
# Email 
on p1.Email = p2.Email
# p1 id ( p1 )
where p1.Id > p2.Id

블로그 추천:\color {blue} 블로그 추천: 블로그 추천: 이 문제는 MySQL의 다중 테이블 연결, 데이터 관리와 관련이 있습니다. 제 칼럼을 참고하십시오.

좋은 웹페이지 즐겨찾기