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절이 더 유리하다
'코딩테스트' 카테고리의 다른 글
| [26.04.17 코테/회고(MySQL)]-한 해에 잡은 물고기 수 구하기 (1) | 2026.04.17 |
|---|---|
| [26.04.15 코테/회고(MySQL/Oracle)]-자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2026.04.15 |
| [26.04.13 코테/회고(MySQL)-성분으로 구분한 아이스크림 총 주문량 (1) | 2026.04.13 |
| [26.04.10 코테/회고(MySQL)]-고양이와 개는 몇 마리 있을까 (0) | 2026.04.10 |
| [26.04.09 코테/회고(MySQL/Oracle)]-3월에 태어난 여성 회원 목록 출력하기 (1) | 2026.04.09 |