01/12 SQL 문제풀이

Data Architect / Engineer·2024년 1월 12일
1

1일_1SQL

목록 보기
1/63
post-thumbnail

문제

  • 프로그래머스 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() 함수 이용하여, 앞에 연-월-일 부분만 출력

profile
질문은 계속돼 아오에

0개의 댓글