문제
https://school.programmers.co.kr/learn/courses/30/lessons/164673
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
✍️ 문제 요약
- USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글
- 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회
- 댓글 작성일 오름차순, 제목 오름차순 정렬
내가 작성한 코드
SELECT b.title,
b.board_id,
r.reply_id,
r.writer_id,
r.contents,
DATE(r.created_date) AS created_date
FROM used_goods_board b
JOIN used_goods_reply r
USING (board_id)
WHERE DATE(b.created_date) LIKE '2022-10%'
ORDER BY r.created_date ASC, b.title ASC;
>>> 맞는 것 같은데 오류가 난다🤔 뭐가 원인일까?
>>> 확인해보니, 위처럼 작성하니 날짜형식이 시간까지 표시가 된다. 모지?
🚨 문제점 분석
▶ 사실 이 문제는 DATE(..)를 사용해도 맞는 거라고 말씀하셨다.
▶ DATE(..)를 사용하면 시분초 없이 연원일이 나오는데, 여기서는 DATE_FORMAT()을 사용할 수 있는지를 묻는 것 같다고 하셨다.
코드 설명
1. 일단 두 테이블을 boar_id를 키로 JOIN
SELECT ...
FROM used_goods_board b
JOIN used_goods_reply r
USING (board_id) <<< 🔍using (공통컬럼명): 지난 번 검색하다 이런 방법도 있어 사용해봄!
2. '2022-10'에 등록된 게시글
WHERE DATE(b.created_date) LIKE '2022-10%'
3. SELECT절 / ORDER BY 명시
SELECT b.title,
b.board_id,
r.reply_id,
r.writer_id,
r.contents,
DATE_FORMAT(r.created_date, '%Y-%m-%d') AS created_date
FROM used_goods_board b
JOIN used_goods_reply r
USING (board_id)
WHERE DATE(b.created_date) LIKE '2022-10%'
ORDER BY r.created_date ASC, b.title ASC;
끝.
'SQL' 카테고리의 다른 글
| [SQL/QCC] 실전 연습 2차 - 코딩 테스트 2문제 (0) | 2025.09.26 |
|---|---|
| [SQL/복습] 세션 1회차 - SQL 작동순서 | GROUP BY | WHERE/HAVING | 서브쿼리 (0) | 2025.09.25 |
| [SQL/코드카타] 프로그래머스 - 년, 월, 성별 별 상품 구매 회원 수 구하기(DISTINCT, GROUP BY) (4) | 2025.09.25 |