SQL - Select - Join - Alias

mrtorture·2023년 12월 9일

최초 23/12/09

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

문제 요약

USED_GOODS_BOARD 테이블이 다음과 같이 주어짐
Column name Type Nullable
BOARD_ID VARCHAR(5) FALSE
WRITER_ID VARCHAR(50) FALSE
TITLE VARCHAR(100) FALSE
CONTENTS VARCHAR(1000) FALSE
PRICE NUMBER FALSE
CREATED_DATE DATE FALSE
STATUS VARCHAR(10) FALSE
VIEWS NUMBER FALSE

USED_GOODS_REPLY 테이블이 다음과 같이 주어짐
Column name Type Nullable
REPLY_ID VARCHAR(10) FALSE
BOARD_ID VARCHAR(5) FALSE
WRITER_ID VARCHAR(50) FALSE
CONTENTS VARCHAR(1000) TRUE
CREATED_DATE DATE FALSE

이 때 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회. 댓글 작성일 기준으로 오름차순 정렬. 댓글 작성일이 같다면 게시글 제목 기준으로 오름차순 정렬.

준비물

INNER JOIN
A JOIN B ON A.column = B.column
A JOIN B USING(column)
A NATURAL JOIN B
SELECT Alias
FROM Alias
FROM > WHERE > GROUP BY > HAVING > ORDER BY > SELECT 적용

구현

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 AS B JOIN USED_GOODS_REPLY AS R USING(BOARD_ID)
)
WHERE YEAR(B.CREATED_DATE) = 2022 AND MONTH(B.CREATED_DATE) = 10
ORDER BY R.CREATED_DATE, A.TITLE;
profile
명확하게 생각하고 싶다

0개의 댓글