알고리즘 문제 풀이/프로그래머스

[SQL 고득점 Kit] SELECT - 조건에 부합하는 중고거래 댓글 조회하기

파란색 가운 2024. 6. 17. 03:04

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

 

프로그래머스

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

programmers.co.kr

 

SELECT BOARD.TITLE,BOARD.BOARD_ID,REPLY.REPLY_ID,REPLY.WRITER_ID,REPLY.CONTENTS,DATE_FORMAT(REPLY.CREATED_DATE,'%y-%m-%d') AS CREATED_DATE
FROM USED_GOODS_BOARD AS BOARD,USED_GOODS_REPLY AS REPLY
WHERE BOARD.BOARD_ID = REPLY.BOARD_ID AND YEAR(REPLY.CREATED_DATE) = 2022 AND MONTH(REPLY.CREATED_DATE) = 10

 

처음 작성한 코드

 

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

1. 문제에서 잘 읽었어야 하는 점 -> "2022년 10월에 작성된 게시글"

나는 댓글이 2022년 10월에 작성된거로 작성하고 있었어서 문제가 자꾸 틀렸다

 

2. SQL 개념 공부한지가 좀 되어서 기억에 의존해서 풀었는데 준쌤이

FROM에 2개 잘 안쓰고 보통 JOIN으로 푼다고 알려줘서 

BOARD.BOARD_ID = REPLY.BOARD_ID를 JOIN 조건으로 사용했다

 

정답 코드

SELECT BOARD.TITLE,BOARD.BOARD_ID,REPLY.REPLY_ID,REPLY.WRITER_ID,REPLY.CONTENTS,DATE_FORMAT(REPLY.CREATED_DATE,'%Y-%m-%d') AS CREATED_DATE
FROM 
    USED_GOODS_BOARD AS BOARD
JOIN 
    USED_GOODS_REPLY AS REPLY
ON 
    BOARD.BOARD_ID = REPLY.BOARD_ID
WHERE DATE_FORMAT(BOARD.CREATED_DATE, '%Y-%m-%d') LIKE '2022-10-%'
ORDER BY REPLY.CREATED_DATE,BOARD.TITLE;

 

 

총평

SQL 은근 쉽지 않다

하루에 한두문제씩이라도 풀어둬야 하반기에 내가 편하겠다고 생각했다