조건에 부합하는 중고거래 댓글 조회하기.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(게시글 제목) 순으로 나열한 테이블에서
문제 참고
'프로그래머스 > SQL' 카테고리의 다른 글
다시 [프로그래머스]재구매가 일어난 상품과 회원 리스트 구하기.oracle (0) | 2023.10.15 |
---|---|
[프로그래머스] 12세 이하인 여자 환자 목록 출력하기. oracle nvl (0) | 2023.10.15 |
인기있는 아이스크림.oracle (ASC, DESC) (0) | 2023.10.10 |
[프로그래머스] 상품 별 오프라인 매출 구하기.oracle (JOIN, LV2) (0) | 2022.10.14 |
[프로그래머스] 가격이 제일 비싼 식품의 정보 출력하기.oracle (MAX) (0) | 2022.10.12 |