개발하는 자몽

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

SQL

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

jaamong 2024. 1. 24. 20:26

문제

https://school.programmers.co.kr/learn/courses/30/lessons/164673

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

 

풀이

  • USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서
  • 2022년 10월에 작성된 
  • 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회
  • 댓글 작성일을 기준으로 오름차순 정렬, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬
SELECT a.TITLE, a.BOARD_ID, b.REPLY_ID, b.WRITER_ID, b.CONTENTS, DATE_FORMAT(b.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE
FROM USED_GOODS_BOARD as a JOIN USED_GOODS_REPLY as b ON a.BOARD_ID = b.BOARD_ID
WHERE YEAR(a.CREATED_DATE)='2022' AND MONTH(a.CREATED_DATE)='10'
ORDER BY b.CREATED_DATE ASC, a.TITLE ASC;

 

  1. 두 테이블에서 조회해야 하므로 `JOIN`을 사용한다. 이때 두 테이블에서 겹치는 컬럼인 게시글 ID을 이용하므로 `INNER JOIN ... ON ...`을 사용한다. (INNER JOIN에서 INNER를 생략해도 된다)
  2. 2022년 10월에 작성된 글을 조회해야 하므로 WHERE 절에서 `YEAR`과 `MONTH`를 이용하여 조건을 걸어준다.
  3. 우선 댓글 작성일을 기준으로 오름차순 정렬, 게시글 제목을 기준으로 오름차순 정렬한다.

 

 

 

 

 

Comments