🔗 조건에 맞는 개발자 찾기

  • DEVELOPERS와 SKILLCODES 테이블을 조인해 개발자의 SKILL_CODE에서 Python(256) 또는 C#(1024) 스킬이 있는지 확인한다.
    • DEVELOPERS.SKILL_CODE와 SKILLCODES.CODE 간의 비트 연산을 수행하기 위해 비트 AND 연산자인 &를 사용한다.
    • DEVELOPERS.SKILL_CODE가 SKILLCODES.CODE를 포함하고 있는지 확인하여 개발자가 특정 스킬을 보유하고 있으면 그 스킬의 코드가 SKILL_CODE에 포함된 비트로 표시한다.
  • WHERE 절에서 'Python'이나 'C#' 스킬을 가진 개발자만 필터링한다.
  • 중복되는 개발자 정보를 제거하기 위해 DISTINCT를 사용한다.
  • 개발자의 ID를 기준으로 오름차순 정렬한다.

 

🦈 MySQL 🦈

✨ 방법1 : IN ✨

SELECT DISTINCT D.ID
    , D.EMAIL
    , D.FIRST_NAME
    , D.LAST_NAME
FROM DEVELOPERS D
JOIN SKILLCODES C
ON C.CODE & D.SKILL_CODE = C.CODE
WHERE C.NAME IN ('Python', 'C#')
ORDER BY D.ID ASC;

 

🌟 방법2 : OR 🌟

SELECT DISTINCT D.ID
    , D.EMAIL
    , D.FIRST_NAME
    , D.LAST_NAME
FROM DEVELOPERS D
JOIN SKILLCODES C
ON C.CODE & D.SKILL_CODE = C.CODE
WHERE C.NAME = 'Python' OR C.NAME = 'C#'
ORDER BY D.ID ASC;