https://school.programmers.co.kr/learn/courses/30/lessons/301650
코드설명
SUBQUERY + IN 을 활용합니다.
3세대 대장균의 ID를 구하기 위해 1세대, 2세대의 ID들을 하나씩 하나씩 구한뒤, 3세대 대장균의 부모개체의 ID와 2세대 대장균의 ID를 비교해서 같은것을 가져오면 됩니다.
코드
서브쿼리만 사용한 코드입니다.
SELECT ED3.ID
FROM ECOLI_DATA AS ED3
WHERE ED3.PARENT_ID IN (
SELECT ED2.ID
FROM ECOLI_DATA AS ED2
WHERE ED2.PARENT_ID IN (
SELECT ED.ID
FROM ECOLI_DATA AS ED
WHERE ED.PARENT_ID IS NULL
)
)
ORDER BY ED3.ID ASC
조인을 활용한 코드입니다.
SELECT ED3.ID
FROM ECOLI_DATA AS ED1
INNER JOIN ECOLI_DATA AS ED2
ON ED1.ID = ED2.PARENT_ID AND ED1.PARENT_ID IS NULL
INNER JOIN ECOLI_DATA AS ED3
ON ED3.PARENT_ID = ED2.ID