[SQL] Programmers_JOIN. Front End 개발자 찾기

Programmers JOIN. Front End 개발자 찾는 문제를 파헤쳐보자 :)

Nov 17, 2025

1. 문제 설명

1-1. 테이블 설명

1-1-1. SKILLCODES 테이블

notion image
✔️ NAME : 스킬의 이름
✔️ CATEGORY : 스킬의 범주
✔️ CODE : 스킬의 코드
→ 2진수로 표현했을 때, 각 bit로 구분될 수 있도록 2의 제곱수로 구성

1-1-2. DEVELOPERS 테이블

notion image
✔️ ID : 개발자 ID
✔️ FIRST_NAME : 개발자 이름
✔️ LAST_NAME : 개발자 성
✔️ EMAIL : 개발자 이메일
✔️ SKILL_CODE : 개발자 스킬 코드
→ 2진수로 표현했을 때, 각 bit는 SKILLCODES 테이블의 CODE
ex) 개발자의 SKILL_CODE가 400(=b’110010000’) 일 경우, SKILLCODE 테이블의 CODE 가 아래와 같음.
  • 256 (=b'100000000')
  • 128 (=b'10000000')
  • 16 (=b'10000')

1-2. 문제 설명

DEVELOPERS 테이블에서 Front End 스킬을 가진 개발자의 정보를 조회하려 합니다.
조건에 맞는 개발자의 ID, 이메일, 이름, 을 조회하는 SQL 문을 작성해 주세요.
결과는 ID를 기준으로 오름차순 정렬해 주세요.

2. 문제 풀이

2-1. 최종 풀이

SELECT DISTINCT D.ID, D.EMAIL, D.FIRST_NAME, D.LAST_NAME FROM SKILLCODES AS S JOIN DEVELOPERS AS D ON S.CODE = S.CODE & D.SKILL_CODE WHERE S.CATEGORY = 'Front End' ORDER BY D.ID;

2-2. 단계별 풀이

2-2-1. 첫 번째 쿼리 만들기

FROM SKILLCODES AS S JOIN DEVELOPERS AS D ON S.CODE = S.CODE & D.SKILL_CODE
해당 코드를 실행시키면, SKILLCODE 테이블의 CODEDEVELOPERS 테이블의 SKILL_CODE를 조인한다. 비트 연산자(&)를 활용하여, 대응되는 비트를 찾는 결과를 반환한다.
📌 비트 연산자(&):
비트(bit) 단위로 논리 연산을 수행하는 연산자.
& (AND 연산) : 대응되는 비트가 모두 1이면 1을 반환함.

2-2-2. 최종 쿼리

SELECT DISTINCT D.ID, D.EMAIL, D.FIRST_NAME, D.LAST_NAME FROM SKILLCODES AS S JOIN DEVELOPERS AS D ON S.CODE = S.CODE & D.SKILL_CODE WHERE S.CATEGORY = 'Front End' ORDER BY D.ID;
해당 코드를 실행시키면, DEVELOPERS 테이블에서 Front End 스킬을 가진 개발자의 정보를 조회하는 결과를 반환한다.