본문 바로가기
BACKEND/코딩테스트 문제 풀이

[Oracle] - 조건에 부합하는 중고거래 댓글 조회하기

by 콩밍디 2023. 12. 12.

문제
USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서

2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성

결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬
주의사항 - CREATED_DATE의 포맷이 예시의 포맷과 일치해야 정답처리 (YYYY-MM-DD)

 

테이블 정보

USED_GOODS_BOARD

BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS

 

USED_GOODS_REPLY

REPLY_ID, BOARD_ID, WRITER_ID, CONTENTS, CREATED_DATE


 

내 풀이

SELECT B.TITLE,
       B.BOARD_ID,
       R.REPLY_ID,
       R.WRITER_ID,
       R.CONTENTS,
       TO_CHAR(R.CREATED_DATE, 'YYYY-MM-DD')
FROM USED_GOODS_BOARD B, USED_GOODS_REPLY R
WHERE B.BOARD_ID = R.BOARD_ID
AND TO_CHAR(B.CREATED_DATE, 'YYYY-MM-DD') LIKE '2022-10%'
ORDER BY R.CREATED_DATE, B.TITLE

 

조건으로 2022년 10월에 작성된 게시글이 주어졌고

날짜 포맷이 YYYY-MM-DD로 주어졌으므로 댓글 작성일을 SELECT 할 때 TO_CHAR로 날짜 포맷을 맞췄고

WHERE 절에 JOIN 조건과 2022년 10월에 작성된 게시글로 조건을 추출해줌

 

이 때, WHERE 절에서 게시글 작성 일을 추출할 때도 반드시 TO_CHAR로 날짜 포맷을 맞춰야함

(안그러면 0행, 즉 빈 ROW 가 추출됨)


 

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/164673