문제
- 프로그래머스 SQL 문제
조건에 부합하는 중고거래 댓글 조회하기
/레벨 1
- 문제 내용 : 하단 프로그래머스 문제 링크 참조
내가 작성한 Query
SELECT A.TITLE, A.BOARD_ID, B.REPLY_ID, B.WRITER_ID, B.CONTENTS, LEFT(B.CREATED_DATE, 10) AS CREATED_DATE FROM USED_GOODS_BOARD A JOIN USED_GOODS_REPLY B ON A.BOARD_ID = B.BOARD_ID WHERE A.CREATED_DATE BETWEEN '2022-10-01' AND '2022-10-31' ORDER BY B.CREATED_DATE ASC, A.TITLE ASC
처음 문제를 보고, 게시글 하나에 여러 개의 REPLY가 있을 수 있다고 생각하고 접근했다.
LEFT, RIGHT JOIN
해본 결과, 둘 다 출력 결과 동일하게 나오는 것으로 보아,
게시글과 답변이 1:1 관계인 것으로 확인함.
BOARD_ID를 기준으로 JOIN 후, 22년 10월
에 작성한 조건을 필터링하기 위해
WHERE
에 해당 BETWEEN
으로 조건 추가.
문제 요구사항대로 ORDER BY
통해 출력 결과 순서 정함.
SQL 작성 후 실행했을 때, 'CREATED_DATE' 컬럼이 시간:분:초
까지?? 출력됨.
문제에서 원하는 답안 형태로 출력하기 위해 DATE()
함수 사용했으나, 프로그래머스에서 적용이 안됨 ㅠㅠ
대체 방법으로 LEFT()
함수 이용하여, 앞에 연-월-일 부분만 출력