코딩테스트 연습 > SELECT > 특정 세대의 대장균 찾기
3세대의 대장균의 ID를 오름차순으로 정렬하기ㄹ
parent_id와 id로 이루어져있고 parent_id가 NULL이면 1세대를 의미한다
테이블을 3번 조인하거나 두 번의 서브쿼리로 parent_id와 id를 비교한다.
select id
from ecoli_data
where parent_id in (
select id
from ecoli_data
where parent_id in (select id from ecoli_data
where parent_id is null)
) order by id asc
with recursive tmp as (
select id, 1 as gen
from ecoli_data
where parent_id is null
union all
select e.id, tmp.gen+1 as gen
from tmp join ecoli_data e
on e.parent_id = tmp.id
)
select id
from tmp
where gen = 3
order by 1 asc