Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 데보션영 3기
- 28278 스택 2
- 자바 10866
- 백준 10866 자바
- 코딩테스트
- 백준 1764 자바
- 10810 자바
- 2748 자바
- 자바 28278
- 2346 풍선 터뜨리기
- BFS
- 10807 자바
- IAM Identity Center
- 백준 2346 자바
- IAM 사용자
- 2164 자바
- 자바 2346
- 자바 2164
- 자바 1003
- 자바
- 티움투어
- 백준 28278 자바
- 파이썬
- 백준
- 그리디
- 2798 자바
- 1010 자바
- dfs
- 1764 자바
- 10813 자바
Archives
- Today
- Total
자두의 데브로그
[MySQL] 프로그래머스 FrontEnd 개발자 찾기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/276035
처음에는 이 문제가 왜 join인지 몰라서 어떻게 푸는지 조금 헤맸다. 물론 문제 유형을 보고 풀면 안되긴 하지만.. 무엇보다 id, email, first_name, last_name 이 developers에만 있었기 때문에 더더욱 서브쿼리로 풀면 되지 않겠나 싶었는데 아니었다.
도대체 code랑 skill_code 비교하는 부분을 어디에 넣어야할지 몰라서 결국 구글링을 통해 문제를 해결했는데 답은 join에 있었다.
join을 위해서 on으로 조건을 줄 때 skillcodes에 있는 code의 값과 developers의 skill_code의 값을 & 연산했을 때 skillcodes의 code 값이 나오는 부분에 대해서 join하면 됐다. 그리고 Front End 스킬을 가지고 있어야 되니까 where에 해당하는 조건을 넣으면 된다. 마지막으로는 id를 distinct로 지정해주어야 한다. 만약 그렇지 않으면, 여러 개의 보유 스킬을 가지고 있는 경우 중복되어 ID가 저장되므로 (ex. React, Vue 모두 보유했다면 두 번 출력) distinct로 지정해주는 것도 잊지 말아야 한다.
-- 코드를 작성해주세요
select distinct id, email, first_name, last_name
from developers d
join skillcodes s
on s.code = s.code & d.skill_code
where s.category Like 'Front%'
order by id;
'코딩테스트 > SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 식품분류별 가장 비싼 식품의 정보 조회하기 (1) | 2024.10.18 |
---|---|
[MySQL] 프로그래머스 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (3) | 2024.10.11 |
[MySQL] 프로그래머스 자동차 평균 대여 기간 구하기 (0) | 2024.10.11 |
[MySQL] 프로그래머스 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 (0) | 2024.10.11 |
[MySQL] 프로그래머스 노선별 평균 역 사이 거리 조회하기 (0) | 2024.10.11 |