1. 문제 풀이 아이디어
JOIN을 사용하여developers테이블과skillcodes테이블을 연결하고,skill_code의 비트 연산을 통해 해당 개발자가 특정 기술(python또는c#)을 보유하고 있는지 판별하여 문제를 해결할 수 있다.
2. 나의 정답 코드
SELECT
DISTINCT d.id,
d.email,
d.first_name,
d.last_name
FROM developers d
JOIN skillcodes s
ON d.skill_code & s.code > 0
WHERE s.name IN ('python', 'c#')
ORDER BY d.id;3. 정리
JOIN을 사용하여developers와skillcodes를 연결한 후,skill_code와code의 비트 연산 결과가 0보다 큰 경우를 필터링한다.
WHERE절에서s.name이'python'또는'c#'인 경우만 조회한다.
DISTINCT를 사용하여 중복된 개발자 정보를 제거한다.
ORDER BY d.id를 적용하여 정렬된 결과를 반환한다.
Share article