Develop/Daily Algorithm Practice 공략집

[오늘의 알고리즘 1문제] - <조건에 맞는 저자와 도서 리스트 출력하기>

쿼카홀릭 2025. 1. 3. 09:43

2025.01.03(Fri.)

 

사전캠프를 기록하다 보니, 제목을 날짜로 지정하는 것이 효율성이 떨어지는 것을 확인했다.

정작 필요한 자료를 찾으려다 보니, 무슨 내용을 정리한 것인지 확인하기가 어려워,

제목만 봐도 어떤 파트를 공부하는지 알 수 있도록 변경하려고 한다!

 

[오늘의 알고리즘 1문제] - 프로그래머스 MySQL

<조건에 맞는 저자와 도서 리스트 출력하기>

 

다음은 어느 한 서점에서 판매중인 도서들의 도서 정보(BOOK), 저자 정보(AUTHOR) 테이블입니다.

BOOK 테이블은 각 도서의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다.

 

Column name Type Nullable Description
book_id Interger false 도서 ID
category Varchar(N) false 카테고리(경제,인문,소설,생활,기술)
author_id Interger false 저자ID
price Interger false 판매가(원)
published_date Date false 출판일

 

AUTHOR 테이블은 도서의 저자의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다.

 

Column name Type Nullable Description
author_id Interger false 저자 ID
author_name Varchar(N) false 저자명

 

*문제*

'경제' 카테고리에 속하는 도서들의 도서 ID(BOOK_ID), 저자명(AUTHOR_NAME), 출판일(PUBLISHED_DATE) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 출판일을 기준으로 오름차순 정렬해주세요.

 

<정답>

SELECT BOOK_ID ,
               AUTHOR_NAME ,
              DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK AS B
LEFT
JOIN AUTHOR AS A
ON B.AUTHOR_ID = A.AUTHOR_ID
WHERE B.CATEGORY = '경제'
ORDER BY PUBLISHED_DATE

 

[문제점 및 느낀점]

- 처음에 FROM 문에 LEFT JOIN을 한번에 쓰려고 하니 채점 기준에 맞지 않았다.

- JOIN 구문을 분리하여 정리하니 정답으로  인정되었다.