코딩테스트

[26.04.14 코테/회고(MySQL/Oracle)]-조건에 맞는 도서와 저자 리스트 출력하기

지니248 2026. 4. 14. 13:33

Lv2. 조건에 맞는 도서와 저자 리스트 출력하기 (MySQL)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/144854?language=mysql

 

내가 작성한 코드

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

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

 

Oracle

SELECT B.BOOK_ID, A.AUTHOR_NAME, TO_CHAR(B.PUBLISHED_DATE, 'YYYY-MM-DD') AS PUBLISHED_DATE
FROM BOOK B
JOIN AUTHOR A
  ON B.AUTHOR_ID = A.AUTHOR_ID
WHERE B.CATEGORY = '경제'
ORDER BY B.PUBLISHED_DATE

 

문제 회고

1. 포맷 함수

- 데이터베이스 환경에 따라 날짜 포맷 함수가 다르므로 MySQL은 DATE_FORMAT, Oracle은 TO_CHAR을 사용한다는 점을 다시 한번 인지했다

2. JOIN 방식

- 두 테이블의 조인 컬럼명(AUTHOR_ID)이 동일하므로 USING절을 사용하면 쿼리가 간결해지고 중복 컬럼을 방지할 수 있다

- 하지만 유지보수와 범용성 측면에서는 ON절이 더 유리하다