OUTER JOIN
SQL의 OUTER JOIN은 두 개의 테이블을 연결할 때, JOIN 조건을 만족하지 않는 행도 결과에 포함하여 보여줍니다. JOIN 조건을 만족하지 않는 행은 NULL 값을 가지며, LEFT OUTER JOIN과 RIGHT OUTER JOIN 두 가지 유형이 있습니다.
LEFT OUTER JOIN
LEFT OUTER JOIN은 왼쪽 테이블의 모든 행과 JOIN 조건을 만족하는 오른쪽 테이블의 행을 결합합니다. JOIN 조건을 만족하지 않는 오른쪽 테이블의 행은 NULL 값을 가지며, 결과에 포함됩니다.
SELECT *
FROM table1
LEFT OUTER JOIN table2
ON table1.column1 = table2.column1;
위 쿼리문은 table1 테이블의 모든 행과 table2 테이블의 column1 값이 일치하는 행을 결합합니다. JOIN 조건을 만족하지 않는 table2의 행은 NULL 값을 가지며, 결과에 포함됩니다.
RIGHT OUTER JOIN
RIGHT OUTER JOIN은 오른쪽 테이블의 모든 행과 JOIN 조건을 만족하는 왼쪽 테이블의 행을 결합합니다. JOIN 조건을 만족하지 않는 왼쪽 테이블의 행은 NULL 값을 가지며, 결과에 포함됩니다.
SELECT *
FROM table1
RIGHT OUTER JOIN table2
ON table1.column1 = table2.column1;
위 쿼리문은 table2 테이블의 모든 행과 table1 테이블의 column1 값이 일치하는 행을 결합합니다. JOIN 조건을 만족하지 않는 table1의 행은 NULL 값을 가지며, 결과에 포함됩니다.
OUTER JOIN은 JOIN 조건을 만족하지 않는 행도 결과에 포함하여 보여주기 때문에, 특정 테이블에서만 존재하는 정보를 가져오거나, 테이블 간의 관계를 분석할 때 유용합니다.
FULL OUTER JOIN
SQL의 FULL OUTER JOIN은 LEFT OUTER JOIN과 RIGHT OUTER JOIN의 결과를 모두 포함하는 JOIN 유형입니다. FULL OUTER JOIN은 두 테이블 중 어느 한쪽에만 있는 행도 결과에 포함하여 보여주기 때문에, 일반적으로 사용되는 JOIN 유형은 아닙니다.
FULL OUTER JOIN은 다음과 같이 작성됩니다.
SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.column1 = table2.column1;
위 쿼리문은 table1과 table2의 column1 값이 일치하는 행을 결합하며, JOIN 조건을 만족하지 않는 행도 결과에 포함하여 보여줍니다. 만약 JOIN 조건을 만족하는 행이 없는 경우에는 NULL 값을 가진 행이 결과에 포함됩니다.
FULL OUTER JOIN은 두 테이블 간의 모든 관계를 분석할 때 유용합니다. 하지만 FULL OUTER JOIN은 결과가 매우 복잡하고, 처리 시간도 오래 걸릴 수 있어서 사용하기 전에 잘 고려해야 합니다. 일반적으로 FULL OUTER JOIN 대신 LEFT OUTER JOIN과 RIGHT OUTER JOIN을 조합하여 사용하는 경우가 많습니다.
'Database' 카테고리의 다른 글
[SQL] HAVING (0) | 2023.04.06 |
---|---|
[SQL] GROUP BY (0) | 2023.04.06 |
[SQL] 그룹함수(집계함수) (0) | 2023.04.06 |
[SQL] ORDER BY 정렬 (0) | 2023.04.06 |
[SQL] SELECT 쿼리 실행 순서(MySQL,MariaDB,Oracle,MS SQL,PostgreSQL,SQLite) (1) | 2023.04.06 |
댓글