본문 바로가기
프로그래머스/MySQL

[프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기 - MySQL - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2024. 9. 29.
728x90
반응형

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 설명

반응형

2. 풀이과정

해당 문제는 '경제' 카테고리에 속하는 도서들의 도서 ID, 저자명, 출판일을 조회하는 문제이다.

해당 문제에는 2개의 테이블이 주어진다.

도서 정보 테이블에서 도서 ID와 출판일을, 저자 정보 테이블에서 저자명을 조회해야 한다.

도서 정보 테이블에 있는 저자 ID 컬럼과 저자 정보 테이블에 있는 저자 ID 컬럼은 동일한 데이터이다.

이를 활용해 두 테이블의 정보를 하나로 합칠 수 있는데 이때 사용하는 것이 바로 JOIN 이다.

서로 다른 테이블에서 데이터를 가져올 때 사용하는 매우 유용하고 중요한 옵션이다.

 

JOIN에는 정말 여러 방법이 있는데 보통 "JOIN 옵션 JOIN 테이블명 ON JOIN 할 조건" 형식으로 작성하면 된다.

JOIN 옵션에는 LEFT, RIGHT, INNER, OUTER, FULL, NATURAL, CROSS 등이 존재한다.

JOIN 할 조건에는 앞 테이블과 뒤 테이블을 JOIN 할 때 어떤 컬럼을 기준으로 JOIN 할 것인지 적어주면 된다.

또한 여러 테이블을 JOIN 할 때는 각 테이블에 별명을 지어 별명으로 조회하는 것이 더 편리한다.

 

해당 문제를 보면 도서 정보 테이블에 있는 저자 ID 컬럼과 저자 정보 테이블에 있는 저자 ID 컬럼이 동일하므로 해당 컬럼을 기준으로 JOIN 해주면 된다.

 

두 테이블을 JOIN 한 뒤 도서 정보 테이블의 카테고리 컬럼에서 '경제' 카테고리에 속하는 도서들만 조회하면 된다.

또한 출판일은 "년-월-일"의 정보만 조회되어야 하므로 DATE_FORMAT() 함수를 활용하여 조회되는 날짜 형식을 지정해 준다.

최종 결과는 출판일을 기준으로 오름차순 정렬하여 조회한다.

 

  1. 도서 정보 테이블에서 도서 ID를, 저자 정보 테이블에서 저자명을, 도서 정보 테이블에서 출판일을 DATE_FORMAT() 함수로 '년-월-일'의 정보만 조회한다. SELECT B.BOOK_ID, A.AUTHOR_NAME, DATE_FORMAT(B.PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
  2. 도서 정보 테이블을 B로 지정한다. FROM BOOK AS B
  3. 저자 정보 테이블을 불러와 도서 정보 테이블의 저자 ID 컬럼과 저자 정보 테이블의 저자 ID 컬럼을 기준으로 두 테이블을 JOIN 해준다. JOIN AUTHOR AS A ON A.AUTHOR_ID = B.AUTHOR_ID
  4. 도서 정보 테이블의 카테고리 컬럼에서 '경제' 카테고리에 속하는 도서만 조회한다. WHERE B.CATEGORY = '경제'
  5. 최종 결과는 출판일을 기준으로 오름차순 정렬하여 조회한다. ORDER BY B.PUBLISHED_DATE
728x90

3. 소스코드

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