[SQL] 부모의 형질을 모두 가지는 대장균 찾기

NoHae·2025년 2월 4일

SQL

목록 보기
57/86

문제 출처

코딩테스트 연습 > SELECT > 부모의 형질을 모두 가지는 대장균 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/301647

문제 설명



접근 방법

ECOLI_DATA 테이블을 하나는 자식 테이블인 so, 하나는 부모 테이블인 pa를 잡아서 so.PARENT_ID = pa.ID 을 기준으로 두 테이블을 join 한다.

이 후, 자식의 GENOTYPE 와 부모의 GENOTYPE를 & 연산 하여 나온 값이 부모의 GENOTYPE인 값만 가져온다.

select so.ID, so.GENOTYPE, pa.GENOTYPE as PARENT_GENOTYPE
from ECOLI_DATA so join ECOLI_DATA pa on so.PARENT_ID = pa.ID
where pa.GENOTYPE & so.GENOTYPE = pa.GENOTYPE
order by so.ID asc

알게된 점

처음 풀었을 때, 같은 테이블을 부모, 자식의 ID 기준으로 join은 시키고, 부모 GENOTYPE 와 자식 GENOTYPE를 & 연산 까지 했다.
하지만 이 과정은 & 연산하여 전부 다 0이 아니면 true인 상황이 되어 select할 때, 가져와지므로 &연산했을 때, 부모의 GENOTYPE와 같아야 문제가 원하는 조건을 만족한다.

문제푼 흔적

profile
노력 해보려고 하는 사람(00년생 소프트웨어융합학과, 24년 12월 부터 백엔드 및 코테 공부 시작)

0개의 댓글