728x90
JOIN 이란?
두 테이블을 묶어 하나의 테이블을 만드는 것.
서로 다른 테이블에서 정보를 가져올 때 JOIN을 사용해준다.
1. INNER JOIN
보통 JOIN 한다고 할때 INNER JOIN을 뜻한다.
SELECT <열 목록>
FROM <기준 테이블>
INNER JOIN<참조할 테이블>
ON <조인 조건>
[WHERE 검색조건]
* INNER JOIN이 아니라 그냥 JOIN을 써도 INNER JOIN으로 인식한다.
SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF A JOIN ICECREAM_INFO B ON A.FLAVOR = B.FLAVOR
GROUP BY INGREDIENT_TYPE
ORDER BY SUM(TOTAL_ORDER);
GROUP BY 로 INGREDIENT_TYPE을 묶고, 총합을 구하라고 했으니까 SUM 집계함수를 사용해준다.
테이블이 2개로 나눠져 있었기 떄문에 JOIN으로 묶어줬다.
* JOIN은 2개 이상의 테이블을 결합하기 때문에 안전하게 모든 열에 테이블 명을 붙여주는게 좋다.
SELECT B.INGREDIENT_TYPE AS INGREDIENT_TYPE, SUM(A.TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF A JOIN ICECREAM_INFO B ON A.FLAVOR = B.FLAVOR
GROUP BY B.INGREDIENT_TYPE
ORDER BY SUM(A.TOTAL_ORDER);
cf) INNER JOIN은 양쪽 테이블에 모두 값이 존재할 때만 결과가 검색된다.
2. OUTER JOIN
OUTER JOIN은 한쪽 테이블에만 값이 있을 때에도 결과가 검색된다.
SELECT <열 목록>
FROM <첫 번째 테이블(LEFT)>
<LEFT | RIGHT | FULL> [OUTER] JOIN <두 번째 테이블(RIGHT)>
ON <조인 조건>
[WHERE 검색조건];
- LEFT = 첫번째 테이블의 내용은 두번째 테이블과 연관이 없어도 전부 검색
- RIGHT = 두번째 테이블의 내용은 첫번째 테이블과 연관이 없어도 전부 검색
- FULL = 모든 테이블의 내용 검색
728x90
'코테 > 정리' 카테고리의 다른 글
| [MySQL] GROUP BY 1 (0) | 2023.07.05 |
|---|---|
| [MYSQL] 중복제거한 데이터 개수 카운트하기 (0) | 2023.06.07 |
| [MYSQL] CASE 조건처리, 쿼리 실행순서, GROUP BY 집계함수 (0) | 2023.06.01 |
| [MySQL] date_format('%Y-%m-%d') (0) | 2023.05.06 |
| [MySQL] LIMIT, ORDER BY, COUNT, MAX MIN SUM (0) | 2023.05.02 |