반응형
https://school.programmers.co.kr/learn/courses/30/lessons/301650
문제 내용
3세대의 대장균의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 이때 결과는 대장균의 ID 에 대해 오름차순 정렬해주세요.
해결 방법
ECOLI_DATA 에는 부모 아이디, 자기 자신의 아이디가 있습니다.
1. 따라서 부모 아이디가 NULL 인 경우는 1세대
2. 부모 아이디가 1번인 애들은 2세대
3. 부모 아이디가 2번인 애들은 3세대로 알 수 있습니다.
따라서 SELECT를 서브쿼리로 해결하거나 JOIN 을 이용해 해결할 수 있습니다,
해결 쿼리문
-- 코드를 작성해주세요
SELECT D.ID
FROM ECOLI_DATA D
INNER JOIN (
SELECT A.ID
FROM ECOLI_DATA A
INNER JOIN (
SELECT ID
FROM ECOLI_DATA
WHERE PARENT_ID IS NULL
) AS B ON A.PARENT_ID = B.ID
) AS C ON D.PARENT_ID = C.ID
ORDER BY D.ID ASC;
-- 코드를 작성해주세요 SELECT D.ID FROM ECOLI_DATA D INNER JOIN ( SELECT A.ID FROM ECOLI_DATA A INNER JOIN ( SELECT ID FROM ECOLI_DATA WHERE PARENT_ID IS NULL ) AS B ON A.PARENT_ID = B.ID ) AS C ON D .PARENT_ID = C.ID ORDER BY D.ID ASC;
'프로그래머스 > lv4' 카테고리의 다른 글
[프로그래머스 lv4] 보호소에서 중성화한 동물 MYSQL (1) | 2024.11.29 |
---|---|
[프로그래머스 lv4] 언어별 개발자 분류하기 MYSQL (0) | 2024.11.27 |
[프로그래머스 lv4] FrontEnd 개발자 찾기 MYSQL (0) | 2024.11.26 |
[프로그래머스 lv4] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.11.24 |