Notice
Recent Posts
Link
Tags
- @transactional
- PYTHON
- spring
- join
- 프로그래머스
- 자바
- Git
- 스프링부트
- SSL
- 1차원 배열
- session
- spring mvc
- spring boot
- ORM
- select
- 문자열
- nginx
- 데이터베이스
- AWS
- Docker
- java
- 스프링
- jpa
- Django
- mysql
- DI
- string
- spring security 6
- sql
- springboot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Archives
개발하는 자몽
[프로그래머스] SELECT > 조건에 부합하는 중고거래 댓글 조회하기 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/164673
USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해 주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해 주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해 주세요.
CREATED_DATE의 포맷이 예시의 포맷과 일치해야 정답처리 됩니다.
풀이
- USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서
- 2022년 10월에 작성된
- 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회
- 댓글 작성일을 기준으로 오름차순 정렬, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬
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 JOIN USED_GOODS_REPLY as b ON a.BOARD_ID = b.BOARD_ID
WHERE YEAR(a.CREATED_DATE)='2022' AND MONTH(a.CREATED_DATE)='10'
ORDER BY b.CREATED_DATE ASC, a.TITLE ASC;
- 두 테이블에서 조회해야 하므로 `JOIN`을 사용한다. 이때 두 테이블에서 겹치는 컬럼인 게시글 ID을 이용하므로 `INNER JOIN ... ON ...`을 사용한다. (INNER JOIN에서 INNER를 생략해도 된다)
- 2022년 10월에 작성된 글을 조회해야 하므로 WHERE 절에서 `YEAR`과 `MONTH`를 이용하여 조건을 걸어준다.
- 우선 댓글 작성일을 기준으로 오름차순 정렬, 게시글 제목을 기준으로 오름차순 정렬한다.
'SQL' 카테고리의 다른 글
[프로그래머스] JOIN > 있었는데요 없었습니다 (0) | 2024.01.31 |
---|---|
[프로그래머스] JOIN > 없어진 기록 찾기 (1) | 2024.01.29 |
[프로그래머스] SELECT > 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2024.01.24 |
[프로그래머스] SELECT > 12세 이하인 여자 환자 목록 출력하기 (0) | 2024.01.23 |
[프로그래머스] SELECT > 조건에 맞는 도서 리스트 출력하기 (1) | 2024.01.23 |
Comments