ㅇ join 은 두 개 이상의 테이블을 결합하여 하나의 결과 집합을 만드는 SQL 연산
1. INNER JOIN
INNER JOIN 은 두 테이블에서 일치하는 레코드만 결합하여 반환. ON 절에서 지정한 조건을 만족하는 행만 결과 집합에 포함된다.

SELECT A.column1, B.column2
FROM TableA A
INNER JOIN TableB B
ON A.common_column = B.common_column;
TableA와 TableB의 common_column 값이 일치하는 행만 결과로 반환합니다.
2. LEFT (OUTER) JOIN
LEFT JOIN 또는 LEFT OUTER JOIN 은 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 일치하는 레코드를 반환. 왼쪽 테이블에 일치하는 레코드가 없으면 오른쪽 테이블의 값은 NULL로 표시된다.

SELECT A.column1, B.column2
FROM TableA A
LEFT JOIN TableB B
ON A.common_column = B.common_column;
TableA의 모든 레코드가 반환되고, TableB와 일치하지 않는 경우 TableB의 열 값은 NULL로 표시된다.

SELECT A.column1, B.column2
FROM TableA A
LEFT JOIN TableB B
ON A.common_column = B.common_column
WHERE B.common_column IS NULL;
3. RIGHT (OUTER) JOIN
RIGHT JOIN 또는 RIGHT OUTER JOIN은 오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 일치하는 레코드를 반환한다. 오른쪽 테이블에 일치하는 레코드가 없으면 왼쪽 테이블의 값은 NULL로 표시된다.

SELECT A.column1, B.column2
FROM TableA A
RIGHT JOIN TableB B
ON A.common_column = B.common_column;
TableB의 모든 레코드가 반환되고, TableA와 일치하지 않는 경우 TableA의 열 값은 NULL로 표시됩니다.
4. FULL (OUTER) JOIN
FULL JOIN 또는 FULL OUTER JOIN은 두 테이블의 모든 레코드를 반환하며, 일치하지 않는 경우 NULL로 표시된다. 이는 LEFT JOIN과 RIGHT JOIN의 결합과 같다.

SELECT A.column1, B.column2
FROM TableA A
FULL JOIN TableB B
ON A.common_column = B.common_column;
TableA와 TableB의 모든 레코드가 반환된다. 일치하지 않는 경우 NULL로 표시된다.

SELECT A.column1, B.column2
FROM TableA A
FULL JOIN TableB B
ON A.common_column = B.common_column
where A.common_column IS NULL
OR B.common_column IS NULL;
5. CROSS JOIN
CROSS JOIN은 두 테이블의 모든 조합을 반환한다. 즉, 첫 번째 테이블의 각 행이 두 번째 테이블의 모든 행과 결합된다. 이로 인해 결과 집합의 크기가 매우 커질 수 있다.
SELECT A.column1, B.column2
FROM TableA A
CROSS JOIN TableB B;
TableA의 각 행이 TableB의 모든 행과 조합된다.
6. SELF JOIN
SELF JOIN은 동일한 테이블을 두 번 참조하여 자신과 결합하는 방식이다. 이는 테이블의 행을 다른 행과 비교할 때 유용하다.
SELECT A.column1, B.column2
FROM TableA A
INNER JOIN TableA B
ON A.common_column = B.common_column;
동일한 테이블의 다른 행과 비교하여 결합된 결과를 반환한다.
'DB' 카테고리의 다른 글
| Driver Setting (0) | 2024.09.01 |
|---|---|
| SQL 주요 용어 (0) | 2024.08.06 |
| DB 이관 시 C# 변경 작업 - 코드 (0) | 2024.08.05 |
| DB 이관 시 C# 변경 작업 - 방화벽 (0) | 2024.08.05 |