본문 바로가기
프로그래머스/SQL

조건에 부합하는 중고거래 댓글 조회하기.oracle (조인, 형변)

by 몰라닉네임 2023. 10. 10.

조건에 부합하는 중고거래 댓글 조회하기.oracle (조인, 형변)

 

 

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

풀이

1.

INNER JOIN -> BOARD_ID 열 기준으로 두 테이블 조인

JOIN 

2. TO_CHAR() 형 변환

- CREATED_DATE 열의 형식을 'YYYY-MM-DD' 형식의 자열로 지정하는 데 사용되면 AS CREATED_DATE 로 지정

- USED_GOODS_BOARD 테이블의 CREATED_DATE 열을 "YYYY-MM" 형식의 문자열로 변환하고 2022-10 과 문자열가ㅗ 비교한다. 

 

 

  • Between
SELECT A.TITLE, A.BOARD_ID, B.REPLY_ID, B.WRITER_ID, B.CONTENTS, to_char(B.CREATED_DATE, 'yyyy-mm-dd') created_date 
-- 5. 게시물 제목, 게시글ID, 댓글ID, 댓글 작성자ID, 댓글 내용, 댓글 작성일('yyyy-mm-dd'형식)을 조회
from USED_GOODS_BOARD A, USED_GOODS_REPLY B
-- 1. A(USED_GOODS_BOARD) 테이블과 B(USED_GOODS_REPLY)에서
where A.BOARD_ID = B.BOARD_ID
-- 2. A.BOARD_ID(게시글ID)와 B.BOARD_ID가 같고,
and A.CREATED_DATE
-- 3. A.CREATED_DATE(게시글 작성일)가
between to_date('2022-10-01', 'yyyy-mm-dd') and to_date('2022-10-31', 'yyyy-mm-dd')
-- 2022-10-01부터 2022-10-31 사이이고,
order by B.CREATED_DATE asc, A.TITLE asc
-- 4. B.CREATED_DATE(댓글 작성일)과 A.TITLE(게시글 제목) 순으로 나열한 테이블에서

 

문제 참고