[SQL] 연습

[MySQL] 프로그래머스 특정 세대의 대장균 찾기

Simon Yoon 2025. 4. 15. 23:25

문제:

3세대의 대장균의 ID 를 출력
- 결과는 대장균의 ID 에 대해 오름차순 정렬

 

해결방법:

1. 3세대 대장균만 찾기 위해서 1, 2 세대의 대장균 ID 를 구한다.

2. ID 와 PARENT_ID 를 기준으로 한 JOIN 을 활용

 

예시 코드:

SELECT T4.ID
FROM ECOLI_DATA T4
INNER JOIN (
    SELECT T1.ID, T1.PARENT_ID
    FROM ECOLI_DATA T1
    INNER JOIN (
        SELECT ID, PARENT_ID
        FROM ECOLI_DATA
        WHERE PARENT_ID IS NULL
        ) T2
    ON T1.PARENT_ID = T2.ID
    ) T3
ON T4.PARENT_ID = T3.ID
ORDER BY ID ASC
;