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 [테이블명].[필드명] = [테이블명].[필드명]