Welcome! Everything is fine.

[프로그래머스/Lv.2] 조건에 맞는 도서와 저자 리스트 출력하기 - MySQL 본문

프로그래머스/SQL

[프로그래머스/Lv.2] 조건에 맞는 도서와 저자 리스트 출력하기 - MySQL

개발곰발 2024. 3. 18.
728x90

📌 문제

 

프로그래머스

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

programmers.co.kr

📌 제출한 오답

처음 제출한 오답은 WHERE 절에 BOOK의 AUTHOR_ID와 AUTHOR의 AUTHOR_ID가 같다는 조건을 넣지 않아 틀렸다.

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

📌 정답

WHERE절에  book. AUTHOR_ID = author. AUTHOR_ID 라는 조건을 하나 더 추가하니 정답이 되었다.

FROM절도 잘못 썼나 했는데, 둘 다 INNER JOIN으로 정상 작동했다.

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

 

아래는 다른 답안에서 본 USING을 사용한 답안이다.

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

📌 기억할 것

  • 조건을 꼼꼼히 확인하자!