프로그래머스 SQL 고득점 Kit - 조건에 부합하는 중고거래 댓글 조회하기

Jinyoung Cheon·2024년 12월 20일
0

코딩테스트

목록 보기
4/25

프로그래머스 SQL 고득점 Kit
https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit

SELECT

problem

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

task

  1. USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서
    -> 두 TABLE JOIN 필요
FROM USED_GOODS_BOARD AS B

JOIN USED_GOODS_REPLY AS R 

ON B.BOARD_ID = R.BOARD_ID 
  1. 2022년 10월에 작성된
WHERE DATE_FORMAT(B.CREATED_DATE, '%Y-%m') = '2022-10'
  1. 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회
SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, 
       R.WRITER_ID, R.CONTENTS, DATE_FORMAT(R.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE
  1. 댓글 작성일을 기준으로 오름차순 정렬
ORDER BY R.CREATED_DATE ASC,
  1. 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬
         B.TITLE ASC;

code

SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, 
       R.WRITER_ID, R.CONTENTS, DATE_FORMAT(R.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE

FROM USED_GOODS_BOARD AS B

JOIN USED_GOODS_REPLY AS R 

ON B.BOARD_ID = R.BOARD_ID 

WHERE DATE_FORMAT(B.CREATED_DATE, '%Y-%m') = '2022-10'

ORDER BY R.CREATED_DATE ASC,
         B.TITLE ASC;

note

WHERE절에서 CREATED_DATE를 USED_GOODS_REPLY TABLE에서 사용하는 과정에서 시간을 잡아먹음.

# 수정 전
WHERE DATE_FORMAT(R.CREATED_DATE, '%Y-%m') = '2022-10'

# 수정 후
WHERE DATE_FORMAT(B.CREATED_DATE, '%Y-%m') = '2022-10'
profile
데이터를 향해, 한 걸음씩 천천히.

0개의 댓글