Database

[DB]JOIN문

khc9154 2023. 2. 15. 17:04

1. Join이란?

두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법

 

2. 기본 구조

SELECT 테이블.컬럼, 테이블.컬럼
FROM 테이블1,테이블2           
WHERE 조건;

 

3. Join 종류

 

 

①내부 조인 (Inner Join)

/*기준 테이블과 조인 테이블 모두에 조인 컬럼 데이터가 존재해야 조회됨 (ON절)*/
SELECT 조회할 컬럼
FROM 테이블1
(INNER) JOIN 테이블2
ON 테이블1.컬럼 = 테이블2.컬럼
[WHERE 추가조건;

 

②자연 조인 (Inner Join)

/*내부 조인에 속함.
  두 테이블이 동시에 가지고 있는 컬럼의 값이 전부 같은 것만 불러온다.
  반드시 두 테이블 간의 동일한 이름, 타입을 가진 컬럼이 필요함*/
SELECT 조회할 컬럼
FROM 테이블1
NATURAL JOIN 테이블2
[WHERE 조건문];

 

③ 전체 외부 조인(Full Other Join)

 

/*공통된 부분만 골라 결합하는 Inner Join 과 다르게 공통되지 않은 행도 유지한다.
  MySQL에서는 FULL OUTER JOIN을 지원하지 않으므로 LEFT OUTER JOIN 결과와 RIGHT OUTER JOIN결과를 UNION 하여 사용해야 한다.*/
SELECT 조회할 컬럼
FROM 테이블1 
FULL OUTER JOIN 테이블2
ON 조건문
[WHERE 추가조건문];

 

 

④ Left Other Join

/*왼쪽 테이블을 기준으로 일치하는 행만 결합되고, 일치하지 않는 부분은 null 값으로 채워짐.*/
SELECT 조회할 컬럼
FROM 기준테이블1 
LEFT OUTER JOIN 테이블2
ON 조건문
[WHERE 추가조건문];

 

⑤ Right Join

SELECT 조회할 컬럼
FROM 테이블1 
RIGHT OUTER JOIN 기준테이블2
ON 조건문
[WHERE 추가조건문];

 

⑥ Cross Join

/*곱집합
  두 테이블 데이터의 모든 조합 
  테이블1의 row * 테이블2의 row 개수만큼의 row를 가진 테이블 생성*/
  
1)
SELECT 조회할컬럼
FROM 테이블1, 테이블2;

2)
SELECT 조회할컬럼
FROM 테이블1
JOIN 테이블2;

3)
SELECT 조회할컬럼
FROM 테이블1
CROSS JOIN 테이블2;

 

참고: https://doh-an.tistory.com/30