Doby's Lab

Programmers: 조건에 부합하는 중고거래 댓글 조회하기 (MySQL) 본문

Data Engineering/SQL

Programmers: 조건에 부합하는 중고거래 댓글 조회하기 (MySQL)

도비(Doby) 2023. 9. 3. 02:48

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


Level I

 

1. USED_GOODS_BOARDUSED_GOODS_REPLY를 각 t1, t2로 Alias(별칭)을 칭하여 간단하게 쿼리를 작성할 수 있게 해주었습니다.

2. 중복되는 필드에 대해서 어느 테이블의 필드를 가져올 것인지 SELECT 절에서 .(dot)을 통해 표현한 것을 확인할 수 있습니다.

3. 제출 양식에 대해 DATE의 포맷이 시간을 제외해야 했기 때문에 DATE_FORMAT 함수를 써서 CREATED_DATE라는 필드로 이름을 바꾸어주었습니다.

4. JOINON을 사용하여 t1t2JOIN시키면서 BOARD_IDON으로 두어 쿼리를 보내도록 했습니다.

5. WHERE 절은 BETWEENAND<c/ode> 절을 사용하여 10월에 해당하는 데이터만 가져오도록 조건을 걸었습니다.

6. ORDER BY를 통해 우선적으로 CREATED_DATE를 기준으로 정렬하고, CREATED_DATE가 일치한다면 TITLE을 기준으로 정렬할 수 있도록 해주었습니다.

SELECT t1.TITLE, t1.BOARD_ID, t2.REPLY_ID, t2.WRITER_ID, t2.CONTENTS, DATE_FORMAT(t2.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE 
FROM USED_GOODS_BOARD AS t1
JOIN USED_GOODS_REPLY AS t2
ON t1.BOARD_ID = t2.BOARD_ID
WHERE t1.CREATED_DATE BETWEEN '2022-10-01' AND '2022-10-31'
ORDER BY t2.CREATED_DATE ASC, t1.TITLE ASC