본문 바로가기
Programmers(SQL 고득점 Kit)/LEVEL 4

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

by DADA익선 2024. 12. 10.

https://school.programmers.co.kr/learn/courses/30/lessons/301650

 

특정 세대의 대장균 찾기

3세대의 대장균의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 이때 결과는 대장균의 ID 에 대해 오름차순 정렬해주세요.

 

문제 풀이 SQL CODE

1. 1세대 ~ 3세대까지 연결을 짓기 위해 JOIN 함수를 사용해서 연결함.
(ex. 태초 ECOLI_DATA는 1세대 테이블(= gp)라고 인식, 두번째를 2세대 테이블(=p), 세번째를 3세대 테이블로 생각)

2. 그 중 1세대부터 이어진 3세대 대장균 ID를 출력해야하므로 1세대 테이블에서 PARENT_ID가 NULL 값인 데이터(부모 세대가 없는 ID 즉 1세대)면서 3세대 ID가 NULL 값이 아닌 3세대 ID만 추출

SELECT 
    e.ID AS ID
FROM ECOLI_DATA gp
LEFT JOIN ECOLI_DATA p ON gp.ID = p.PARENT_ID
LEFT JOIN ECOLI_DATA e ON p.ID = e.PARENT_ID
WHERE gp.PARENT_ID IS NULL AND e.ID IS NOT NULL
ORDER BY e.ID

 

다른 문제 보러가기


2024.12.06 - [Programmers(SQL 고득점 Kit)] - [MySQL] 프로그래머스 - 오프라인/온라인 판매 데이터 통합하기

2024.12.05 - [Programmers(SQL 고득점 Kit)] - [MySQL] 프로그래머스 - 서울에 위치한 식당 목록 출력하기 LEVEL 4