https://school.programmers.co.kr/learn/courses/30/lessons/144854
[풀이]
SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') as PUBLISHED_DATE
FROM BOOK
INNER JOIN AUTHOR
ON BOOK.CATEGORY = '경제' and BOOK.AUTHOR_ID = AUTHOR.AUTHOR_ID
ORDER BY PUBLISHED_DATE;
- WHERE로 풀어도 상관 없지만, 얼마 전 스터디원 분께서 말씀해주신 내용을 상기하며 적은 쿼리
- JOIN 후에 WHERE 문으로 조건을 걸면 데이터가 많아졌을 때, 불필요한 데이터도 조인이 들어가고 연산이 늦어짐
- 그래서 CATEGORY가 경제일 경우만 조인하고 싶다면,
- WHERE 보다는 ON에 조건을 거는 것이 좋음
- ON - JOIN을 하기 전 필터링
- WHERE - JOIN을 한 후 필터링
[풀이 후기]
- 항상 쿼리를 날릴 때, 데이터가 굉장히 크다고 생각하고 쿼리 날릴 것
- 카티션 프로덕트가 항상 발생한다는 것 유의하면서, 쿼리를 어떻게 최적화 시킬 것인가 고민
- 항상 조인보다는 서브쿼리 쪽으로 생각하기
'코딩테스트 스터디 > 프로그래머스' 카테고리의 다른 글
[LV 2/정렬] 가장 큰 수 (0) | 2023.07.15 |
---|---|
[LV2/해시] 의상 (0) | 2023.07.15 |
[LV2/해시] 전화번호 목록 (0) | 2023.07.15 |
[LV2] 귤고르기 (0) | 2023.07.14 |
[LV1] 가장 가까운 같은 글자 (0) | 2023.07.14 |