본문 바로가기

반응형

문제

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

구조

REPLY_ID, BOARD_ID, WRITER_ID, CONTENTS, CREATED_DATE는 각각 댓글 ID, 게시글 ID, 작성자 ID, 댓글 내용, 작성일을 의미합니다.

예시


처음에 작성한 쿼리

-- 코드를 입력하세요
select
    b.TITLE,
    b.BOARD_ID,
    r.REPLY_ID,
    r.WRITER_ID,
    r.CONTENTS,
    to_char(r.CREATED_DATE, 'YYYY-MM-dd')
from used_goods_board b ,used_goods_reply r
where to_char(b.created_date, 'YYYY-MM-dd') like '2022-10%'
order by r.created_date, b.title;

틀린 이유

명시적인 조인 조건이 없어서 두 테이블의 모든 데이터가 조합되어 출력이 되어 버렸습니다..


수정한 쿼리

-- 코드를 입력하세요
select
    b.TITLE,
    b.BOARD_ID,
    r.REPLY_ID,
    r.WRITER_ID,
    r.CONTENTS,
    to_char(r.CREATED_DATE, 'YYYY-MM-dd')
from used_goods_board b join used_goods_reply r on b.board_id = r.board_id
where to_char(b.created_date, 'YYYY-MM-dd') like '2022-10%'
order by r.created_date, b.title;

그래서 명시적인 조건을 부여해줘서 알맞게 출력이 되도록 만들었습니다!

 

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/164673

반응형
댓글