[MySQL] 196. Delete Duplicate Emails

2022. 11. 27. 14:44TIL💡/Database

이거 엄청나게 유용한 문제이다. 중복되는 row를 제거하는 문제이다. 

셀프 조인하여 행 간의 비교를 수행하고, 같은 값을 같되 아이디가 다른 row가 존재하면 가장 작은 값만 남기고 나머지는 삭제한다.

DELETE p1 FROM Person p1, Person p2
WHERE p1.email = p2.email AND p1.id > p2.id;

같은 테이블을 구분하기 위해 p1, p2라고 alias를 지정한다.