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