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

hgghfgf·2023년 6월 17일
0

프로그래머스

목록 보기
160/227

조건에 부합하는 중고거래 댓글 조회하기.sql

USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요.

SELECT TITLE, BOARD.BOARD_ID, REPLY_ID, REPLY.WRITER_ID, REPLY.CONTENTS, DATE_FORMAT(REPLY.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE
FROM USED_GOODS_REPLY AS REPLY
LEFT JOIN USED_GOODS_BOARD AS BOARD
ON REPLY.BOARD_ID=BOARD.BOARD_ID
WHERE DATE_FORMAT(BOARD.CREATED_DATE, '%Y-%m') = '2022-10'
ORDER BY REPLY.CREATED_DATE, TITLE

SELECT TITLE, BOARD.BOARD_ID, REPLY_ID, REPLY.WRITER_ID, REPLY.CONTENTS, DATE_FORMAT(REPLY.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE: SELECT 절에서 조회할 필드를 지정하고, REPLY 테이블의 CREATED_DATE 필드를 'YYYY-MM-DD' 형식으로 변환하여 CREATED_DATE로 별칭을 붙입니다.

FROM USED_GOODS_REPLY AS REPLY LEFT JOIN USED_GOODS_BOARD AS BOARD ON REPLY.BOARD_ID=BOARD.BOARD_ID: FROM 절에서 USED_GOODS_REPLY 테이블을 REPLY 별칭으로 사용하고, USED_GOODS_BOARD 테이블을 BOARD 별칭으로 사용하여 조인합니다. 조인 조건은 REPLY 테이블의 BOARD_ID와 BOARD 테이블의 BOARD_ID가 일치하는 경우입니다. LEFT JOIN을 사용하여 USED_GOODS_REPLY 테이블을 기준으로 LEFT OUTER JOIN을 수행합니다.

WHERE DATE_FORMAT(BOARD.CREATED_DATE, '%Y-%m') = '2022-10': WHERE 절에서 BOARD 테이블의 CREATED_DATE를 'YYYY-MM' 형식으로 변환하여 2022년 10월에 해당하는 데이터를 필터링합니다.

ORDER BY REPLY.CREATED_DATE, TITLE: ORDER BY 절에서 댓글 작성일인 REPLY.CREATED_DATE를 기준으로 오름차순 정렬하고, 댓글 작성일이 같은 경우에는 게시글 제목인 TITLE을 기준으로 오름차순 정렬합니다.

결과적으로, 2022년 10월에 작성된 게시글과 그에 해당하는 댓글들이 게시글 제목과 댓글 작성일 순서로 정렬되어 반환됩니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/164673

0개의 댓글