프로그래머스 Level 1 연습문제 > 조건에 부합하는 중고거래 댓글 조회하기


USED_GOODS_BOARD라는 게시글 테이블과, USER_GOODS_REPLY라는 댓글 테이블이 주어진다.
두 테이블을 JOIN하여 문제의 정답에 해당하는 컬럼만 뽑아낸다.
KEY는 BOARD_ID로 JOIN하면 되며, 정답 포맷중 CREATED_DATE는 FORMAT가 DATE여서 실제로 쿼리해보면 'YYYY-MM-DD:HH-MM-SS'로 나온다.
이를 TO_CHAR을 사용하여 시간 정보를 빼면 된다.
SELECT
A.TITLE, A.BOARD_ID, B.REPLY_ID,
B.WRITER_ID, B.CONTENTS, TO_CHAR(B.CREATED_DATE, 'YYYY-MM-DD') AS CREATED_DATE
FROM USED_GOODS_BOARD A
INNER JOIN USED_GOODS_REPLY B
ON A.BOARD_ID = B.BOARD_ID
WHERE A.CREATED_DATE BETWEEN TO_DATE('2022-10-01', 'YYYY-MM-DD') AND TO_DATE('2022-10-31', 'YYYY-MM-DD')
ORDER BY B.CREATED_DATE ASC, A.TITLE ASC
처음에 게시글 날짜가 아닌 댓글 작성 날짜를 BETWEEN을 사용하여 10월치 데이터를 뽑아내서 실패했다. 문제를 조금 더 잘 읽었어야 했는데 실수였던 것 같다.
SELECT문에서는 포맷에 맞게 시간 정보를 제외시킨 후 출력하였으며, 마지막 정렬 조건에서 댓글 작성일, 게시글 제목 순대로 ORDER BY를 사용하여 정렬을 하였다.