자료구조 및 알고리즘/프로그래머스

프로그래머스 - 조건에 부합하는 중고거래 댓글 조회하기 (SQL)

viamemine 2024. 4. 17. 09:57
728x90
반응형

 


 

💬 내가 작성한 SQL 코드 (실패 코드) = WHERE 문이 잘못됨

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

# 댓글 작성일이 같다면 제목 기준으로 오름차순
# 게시글 제목, 게시글 ID, 댓글 ID, 댓글작성자 ID, 댓글내용, 댓글작성일

 


 

💬 내가 작성한 SQL 코드 (성공 코드) 

SELECT A.TITLE, A.BOARD_ID, B.REPLY_ID, 
            B.WRITER_ID, B.CONTENTS, 
            DATE_FORMAT(B.CREATED_DATE,'%Y-%m-%d') AS CREATED_DATE
FROM USED_GOODS_BOARD AS A 
INNER JOIN USED_GOODS_REPLY AS B
ON A.BOARD_ID = B.BOARD_ID
WHERE SUBSTR(A.CREATED_DATE,1,7) = '2022-10'
ORDER BY B.CREATED_DATE ASC, A.TITLE ASC;

 


 

WHERE문에서 왜 B.CREATED_DATE가 아닌 A.CREATED_DATE인지 한참 고민했습니다. 

 

A.CREATED_DATE는 게시글 작성 일시를 의미하고,

B.CREATED_DATE는 댓글 작성 일시를 의미합니다.

 

때문에 게시글 작성 일시를 의미하는 A.CREATED_DATE가 정답이 맞습니다.

 

또한, DATE_FORMAT(A.CREATED_DATE, '%Y-%m') = '2022-10'과

SUBSTR(A.CREATED_DATE, 1,  7) = '2022-10'은 같은 의미입니다.

 

 

 

728x90