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

박기영·2024년 7월 31일
0

프로그래머스

목록 보기
130/159

solution

SELECT
    USED_GOODS_BOARD.TITLE,
    USED_GOODS_BOARD.BOARD_ID,
    USED_GOODS_REPLY.REPLY_ID,
    USED_GOODS_REPLY.WRITER_ID,
    USED_GOODS_REPLY.CONTENTS,
    DATE_FORMAT(USED_GOODS_REPLY.CREATED_DATE, "%Y-%m-%d")
FROM USED_GOODS_BOARD
JOIN USED_GOODS_REPLY ON USED_GOODS_BOARD.BOARD_ID = USED_GOODS_REPLY.BOARD_ID
WHERE DATE_FORMAT(USED_GOODS_BOARD.CREATED_DATE, "%Y-%m") = "2022-10"
ORDER BY USED_GOODS_REPLY.CREATED_DATE ASC, USED_GOODS_BOARD.TITLE ASC;

explanation

USED_GOODS_BOARD 테이블과 USED_GOODS_REPLY 테이블을 JOIN 한다.
2022년 10월에 생성된 USED_GOODS_BOARD 테이블의 데이터 중
필요한 데이터들을 추출한다.
USED_GOODS_REPLY 테이블의 CREATED_DATE를 기준으로 오름차순 정렬하고,
만약 같은 경우 USED_GOODS_BOARD 테이블의 TITLE을 기준으로 오름차순 정렬한다.

tips

현재 SQL 코드가 상당히 길다.
이를 더 간소화 할 수 있다.

SELECT
    ugb.TITLE,
    ugb.BOARD_ID,
    ugr.REPLY_ID,
    ugr.WRITER_ID,
    ugr.CONTENTS,
    DATE_FORMAT(ugr.CREATED_DATE, "%Y-%m-%d")
FROM USED_GOODS_BOARD ugb
JOIN USED_GOODS_REPLY ugr ON ugb.BOARD_ID = ugr.BOARD_ID
WHERE DATE_FORMAT(ugb.CREATED_DATE, "%Y-%m") = "2022-10"
ORDER BY ugr.CREATED_DATE ASC, ugb.TITLE ASC;

FROMJOIN 절에서 테이블의 이름을 설정해주면 된다.

profile
나를 믿는 사람들을, 실망시키지 않도록

0개의 댓글