본문 바로가기
SQL/코딩테스트

[MySQL] SubQuery 활용법

by Nanki 2024. 11. 11.

문제 출처 : https://leetcode.com/problems/delete-duplicate-emails/

 

 

풀이 매크로

1. Person 테이블이아니라 Mail 테이블을 가져와야 하는 상황 > 특정 테이블의 일부를 가져와서 연산해야한다

2. 따라서 subquery 중 FROM을 이용해서 풀이를 해야한다.

 

DELETE FROM Person
WHERE Id NOT In
                (
                    SELECT Id
                    FROM 
                    (
                        SELECT Email, MIN(id) AS Id
                        FROM Person
                        GROUP BY Email
                    )temp

 

배운점 

Subquery를 사용할때 다음과 같은 상황을 때 활용한다.

 

1. SELECT 절 서브쿼리 : 본 쿼리의 연산 결과와 관계없는 값을 결과로 출력하고자 할 때

2. FROM 절 서브쿼리 : 특정 테이블의 일부를가져와서 연산하고자 할 때 사용

3. WHERE 절 서브쿼리 : 특정 테이블의 일불르 가져와 조건을 걸고자할 때 사용