알고리즘/SQL
[프로그래머스] 특정 세대의 대장균 찾기
Noaahhh
2024. 9. 20. 22:52
Question
3세대의 대장균의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 이때 결과는 대장균의 ID 에 대해 오름차순 정렬해주세요.
Pseudocode
- 테이블 간 조인:
- ecoli_data 테이블을 세 번 각각 e1, e2, e3로 참조하여 자기 자신과 조인합니다.
- e1은 부모 개체, e2는 e1의 자식 개체, e3는 e2의 자식 개체로 설정됩니다.
- 조건 설정:
- e1.parent_id IS NULL 조건을 사용하여 e1이 부모가 없는 최상위 개체인 경우만 조회합니다.
- 결과 반환:
- e3.id 값을 반환하여 e1 → e2 → e3의 트리 구조에서 손자 개체에 해당하는 개체의 ID만을 출력합니다.
Code
SELECT e3.id
FROM ecoli_data e1
JOIN ecoli_data e2
ON e1.id = e2.parent_id
JOIN ecoli_data e3
ON e2.id = e3.parent_id
WHERE e1.parent_id IS NULL