CODING TEST/MySQL

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

iamyuunzo 2025. 7. 29. 10:06

📌 문제 정보

- 문제 이름 : 프로그래머스 - (JOIN) 조건에 맞는 도서와 저자 리스트 출력하기

- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/144854

 

 

 

📌 문제 요약

- BOOK 테이블 : BOOK_ID, CATEGORY, AUTHOR_ID, PRICE, PUBLISHED_DATE (각 도서 정보)

- AUTHOR 테이블 : AUTHOR_ID, AUTHOR_NAME (각 도서의 저자 정보)

- '경제' 카테고리에 속하는 도서들의 도서 ID(BOOK_ID), 저자명(AUTHOR_NAME), 출판일(PUBLISHED_DATE) 리스트를 출력하는 SQL문을 작성. 결과는 출판일을 기준으로 오름차순 정렬. PUBLISHED_DATE의 데이트 포맷이 예시와 동일해야 정답.

 

예시) BOOK 테이블(1)과 AUTHOR 테이블(2)이 다음과 같다면,

BOOK_ID  CATEGORY  AUTHOR_ID  PRICE  PUBLISHED_DATE   AUTHOR_ID  AUTHOR_NAME
1 인문 1 10000 2020-01-01 1 홍길동
2 경제 1 9000 2021-04-11 2 김영호
3 경제 2 11000 2021-02-05    

 

출력)

BOOK_ID  AUTHOR_NAME  PUBLISHED_DATE
3 김영호  2021-02-05
2 홍길동  2021-04-11

 

 

 

📌 내 풀이 및 코드

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

JOIN 문법을 자꾸 헷갈림. (ON 빼지 않기 주의!!!)

 

 

📌 새로 배운 문법

<-- 이번 문제에서 새로 배운 Java 문법 정리 -->

** JOIN 기본 문법 다시 정리 **

SELECT A.컬럼명, B.컬럼명
FROM 테이블A AS A
JOIN 테이블B AS B
ON A.공통컬럼 = B.공통컬럼;