본문 바로가기
💿 Oracle/프로그래머스 Lv. 1

[프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기

by 동일 2023. 4. 24.

<답>

SELECT
    A.TITLE, A.BOARD_ID, B.REPLY_ID, B.WRITER_ID, B.CONTENTS,
    TO_CHAR(B.CREATED_DATE,'YYYY-MM-DD')

FROM
    USED_GOODS_BOARD A, USED_GOODS_REPLY B
WHERE A.BOARD_ID = B.BOARD_ID
AND TO_CHAR(A.CREATED_DATE,'YYYY-MM') = '2022-10'
ORDER BY B.CREATED_DATE ASC, A.TITLE ASC;

 

1. 두 테이블에 공통적으로 들어가는 컬럼을 찾는다.(BOARD_ID)

 

2. JOIN형태를 선택한다.

2-1. INNER JOIN을 선택한 이유는 '댓글'을 찾는것이기 때문에 게시글과 댓글 모두 존재해야하기 때문

2-2. INNER JOIN을 다음과 같이 사용할 수도 있다.

FROM USED_GOODS_BOARD A
INNER JOIN USED_GOODS_REPLY B
ON A.BOARD_ID = B.BOARD_ID

 

3. 2022년 10월의 게시글만 검색하기 위해 날짜형태인 CREATED_DATE를 TO_CHAR을 이용하여 문자열로 변경하여 비교

 

4. 댓글날짜 오름차순, 게시글 제목 오름차순 정렬(ASC가 기본값이기 떄문에 생략해도 무관)

 

5. 댓글 생성날짜의 포맷 형식을 예시 포맷 형식과 일치하게 변경