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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

코드설명

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

 

+ Recent posts