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

takeon·2023년 12월 29일
0

SQL

목록 보기
1/11
post-thumbnail

난이도: Lv. 1
https://school.programmers.co.kr/learn/courses/30/lessons/164673

🫧문제 설정

두 개의 테이블 USED_GOODS_BOARDUSED_GOODS_REPLY가 각각은 중고 거래 게시판의 정보와 그 게시판의 첨부파일 정보를 담고 있다.

USED_GOODS_BOARD 테이블

  • Columns: BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS

USED_GOODS_REPLY 테이블

  • Columns: REPLY_ID, BOARD_ID, WRITER_ID, CONTENTS, CREATED_DATE

🫧문제

위의 두 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성. (댓글 작성일을 기준으로 오름차 정렬, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차 정렬)

🫧문제 풀이

두 테이블을 join하여 해결해야 하는 문제이다. 알아내고자 하는 정보들의 column 이름을 select절에 위치시키고, from절에서 두 테이블을 선택하여 on으로 그 조건을 맞춘다. 여기서는 두 테이블에 공통적으로 들어가있는 BOARD_ID로 묶을 것이다. 이후 where절에서 문제에서 지정한 날짜 조건을 설정하고, 마지막으로 order by로 정렬한다.

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 B 
JOIN USED_GOODS_REPLY R
ON B.BOARD_ID = R.BOARD_ID
WHERE YEAR(B.CREATED_DATE) = 2022 and MONTH(B.CREATED_DATE) = 10
ORDER BY R.CREATED_DATE, B.TITLE

🫧기억할 부분

  1. data_format의 사용법⭐
  2. JOIN ON의 사용법

0개의 댓글