[ 8-1. 데이터 합치기 ]
○ JOIN 정의
· 테이블을 합칠 때 사용하는 키워드
· 같은 의미를 가지는 컬럼의 값을 기준으로 테이블을 합칠 때 사용하는 키워드
○ 종류
[ 8-2. 기준으로 테이블 합치기 ]
○ INNER JOIN
· 두 테이블 모두에 있는 값만 합치기
/* INNER JOIN 문법 */
SELECT [컬럼 이름]
FROM [테이블A 이름]
INNER JOIN [테이블B 이름]
ON [테이블 A 이름].[컬럼 A이름] = [테이블 B 이름].[컬럼 B 이름]
WHERE 조건식;
ex) SELECT *
FROM mypokmeon
INNER JOIN ability
ON mypokemon.number = ability.number;
[ 8-3. 한쪽을 기준으로 테이블 합치기 ]
○ LEFT JOIN
· 왼쪽 테이블에 있는 값만 합치기
/* LEFT JOIN 문법 */
SELECT [컬럼 이름]
FROM [테이블A 이름]
LEFT JOIN [테이블B 이름]
ON [테이블 A 이름].[컬럼 A이름] = [테이블 B 이름].[컬럼 B 이름]
WHERE 조건식;
ex) SELECT *
FROM mypokmeon
LEFT JOIN ability
ON mypokemon.number = ability.number;
○ RIGHT JOIN
· 오른쪽 테이블에 있는 값만 합치기
/* RIGHT JOIN 문법 */
SELECT [컬럼 이름]
FROM [테이블A 이름]
RIGHT JOIN [테이블B 이름]
ON [테이블 A 이름].[컬럼 A이름] = [테이블 B 이름].[컬럼 B 이름]
WHERE 조건식;
ex) SELECT *
FROM mypokmeon
RIGHT JOIN ability
ON mypokemon.number = ability.number;
[ 8-4. 다양한 방식으로 테이블 합치기 ]
○ OUTER JOIN
· 두 테이블에 있는 모든 값 합치기
· 두 쿼리의 결과를 중복을 제외하고 합쳐서 보여줌
/* OUTER JOIN 문법(MySQL 기준) */
SELECT [컬럼 이름]
FROM [테이블A 이름]
LEFT JOIN [테이블B 이름]
ON [테이블A 이름].[컬럼A 이름] = [테이블B 이름].[컬럼B 이름]
UNION -- UNION : 두 쿼리의 결과를 중복을 제외하고 합쳐서 보여주는 집합 연산자
SELECT [컬럼 이름]
FROM [테이블A 이름]
RIGHT JOIN [테이블B 이름]
ON [테이블A 이름].[컬럼A 이름] = [테이블B 이름].[컬럼B 이름]
ex) SELECT *
FROM mypokemon
LEFT JOIN ability
ON mypokemon.number = ability.number
UNION
SELECT *
FROM mypokemon
RIGHT JOIN ability
ON mypokemon.number = ability.number;
○ CROSS JOIN
· 두 테이블에 있는 모든 값을 각각 합치기
· 두 쿼리의 결과를 중복을 제외하고 합쳐서 보여줌
/* CROSS JOIN 문법 */
SELECT [컬럼 이름]
FROM [테이블A 이름]
CROSS JOIN [테이블B 이름] -- ON 키워드가 없어도 됨
WHERE 조건식;
ex) SELECT *
FROM mypokemon
CROSS JOIN ability;
○ SELF JOIN
· 같은 테이블에 있는 값 합치기
/* SELF JOIN 문법 */
SELECT [컬럼 이름]
FROM [테이블A 이름] AS t1
INNER JOIN [테이블A 이름] AS t2
ON t1.[컬럼A 이름] = t2.[컬럼 A 이름]
WHERE 조건식
ex) SELECT *
FROM mypokemon AS t1
INNER JOIN mypokemon AS t2
ON t1.number = t2.number;
'📒 교육 및 공부 > [교육] SQL 데이터분석 첫걸음' 카테고리의 다른 글
[SQL 데이터분석 첫걸음] Day07. 규칙 만들기 (0) | 2023.12.17 |
---|---|
[SQL 데이터분석 첫걸음] Day06. 데이터 그룹화하기 (0) | 2023.12.14 |
[SQL 데이터분석 첫걸음] Day05. 원하는 데이터 만들기 (0) | 2023.12.04 |
[SQL 데이터분석 첫걸음] Day04. 조건에 맞는 데이터 가져오기 (1) | 2023.11.25 |
[SQL 데이터분석 첫걸음] Day03. 데이터 가져오기 (1) | 2023.11.21 |