MySQL
MySQL JOIN
char1ey
2023. 1. 13. 02:00
목차 |
1. 조인(JOIN) |
2. 조인(JOIN)의 종류와 사용방법 2.1 EQUI JOIN 2.2 Non EQUI JOIN 2.3 INNER JOIN 2.4 NATURAL JOIN 2.5 CROSS JOIN 2.6 OUTER JOIN |
1. 조인(JOIN)
조인(Join)은 두 개이상의 테이블을 연결(결합)하여 데이터를 출력한다.
2. 조인의 종류와 사용방법
2.1 EQUI JOIN
테이블 간의 컬럼 값들이 일치하는 경우 사용한다. 사용되는 연산자는 = 이다.
SELETE [테이블명].[필드명], [테이블명].[필드명],...
FROM [테이블명], [테이블명], ...
WHERE [테이블명].[필드명: A] = [테이블명].[필드명: A],
2.2 Non EQUI JOIN
테이블 간의 컬럼 값들이 일치하지 않는 경우 사용한다.
사용되는 연산자는 다음과 같다.
- BETWEEN
- >
- >=
- <
- <=
SELETE [테이블명].[필드명], [테이블명].[필드명],...
FROM [테이블명], [테이블명], ...
WHERE [테이블명].[필드명: A] BETWEEN [테이블명].[필드명: A], [테이블명].[필드명: B]
2.3 INNER JOIN
내부 조인, JOIN 조건에서 동일한 값이 있는 행만 반환한다.
WHERE에서 사용하던 조건을 FROM 절에서 정의한다는 의미, WHERE 대신 USING이나 ON을 필수로 사용한다.
SELETE [테이블명].[필드명], [테이블명].[필드명]
FROM [테이블명] INNER JOIN [테이블명]
ON [테이블명].[필드명], [테이블명].[필드명]
SELETE [테이블명].[필드명], [테이블명].[필드명]
FROM [테이블명] JOIN [테이블명]
ON [테이블명].[필드명], [테이블명].[필드명]
2.4 NATURAL JOIN
자연 조인, 두 테이블 간의 동일한 이름을 갖는 모든 컬럼들에 대해 EQUI JOIN을 수행한다.
WHERE, ON, USING 절에서 조건을 정의할 수 없다.
공통된 컬럼을 자동으로 인식하여 조인 처리한다.
SELETE [필드명 A], [필드명 B]
FROM [테이블명] NATURAL JOIN [테이블명]
2.5 CROSS JOIN
테이블간 조인조건이 없는 경우 생길 수 있는 모든 데이터의 조합.
CROSS JOIN의 결과는 두 테이블의 데이터 수를 곱한 조합이 발생한다.( N * M )
SELETE [필드명 A], [필드명 B]
FROM [테이블명] CROSS JOIN [테이블명]
2.6 OUTER JOIN
JOIN 조건에서 동일한 값이 없는 행도 반환할 때 사용한다.
LEFT OUTER JOIN
조인 수행 시 먼저 표기된 좌측 테이블에 해당하는 데이터를 읽고, 우측 테이블에서 JOIN 대상 데이터를 읽어온다.
우측에서 만족하는 데이터가 없을 시, NULL 값을 반환한다.
SELETE [필드명 A], [필드명 B]
FROM [테이블명] LEFT OUTER JOIN [테이블명]
ON [테이블명].[필드명] = [테이블명].[필드명]
RIGHT OUTER JOIN
조인 수행 시 먼저 표기된 우측 테이블에 해당하는 데이터를 읽고, 좌측 테이블에서 JOIN 대상 데이터를 읽어온다.
좌측에서 만족하는 데이터가 없을 시, NULL 값을 반환한다.
SELETE [필드명 A], [필드명 B]
FROM [테이블명] LEFT OUTER JOIN [테이블명]
ON [테이블명].[필드명] = [테이블명].[필드명]
FULL OUTER JOIN
조인 수행 시 좌,우 테이블의 모든 데이터를 읽어 조인하여 결과를 생성한다.
결과를 합집합으로 처리한 결과와 동일하다.
SELETE [필드명 A], [필드명 B]
FROM [테이블명] FULL OUTER JOIN [테이블명]
ON [테이블명].[필드명] = [테이블명].[필드명]