본문 바로가기

SQL

[MYSQL] 3개의 테이블 JOIN

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

SELECT AUTHOR_ID
     , AUTHOR_NAME
     , CATEGORY
     , SUM(B.PRICE * BS.SALES) AS TOTAL_SALES
FROM BOOK AS B
     NATURAL JOIN AUTHOR AS A
     NATURAL JOIN BOOK_SALES AS BS
WHERE BS.SALES_DATE BETWEEN '20220101' AND '20220131'
GROUP BY B.AUTHOR_ID
       , B.CATEGORY
ORDER BY AUTHOR_ID
       , CATEGORY DESC

 

각 테이블의 공통 칼럼을 이용해서 순서대로 JOIN 가능.

 

그리고 TOTAL_SALES에서 SUM을 사용하는 이유는, 단순히 PRICE * SALES 를 하면 그룹화된 데이터의 맨 위 기록만 남게 되기 때문에 SUM을 해줘야 함.

'SQL' 카테고리의 다른 글

[MYSQL] UNION, DATE_FORMAT  (0) 2024.08.04
[MYSQL] WITH, JOIN, CASE, 집계 함수  (0) 2024.08.04
[MYSQL] PERCENT_RANK()  (0) 2024.08.04
[MYSQL] WITH, RANK, PARTITION BY  (0) 2024.07.30
[MYSQL] 최댓값, CONCAT  (0) 2024.07.29