본문 바로가기
IT Study/SQL

[SQLD] JOIN 함수 관련 총정리

by 하람 Haram 2026. 2. 24.
728x90

JOIN

JOIN은 두 개의 테이블을 하나로 병합하는 것

- 주로 PK, FK를 통해 성립하지만 연관성 없어도 JOIN은 가능하다

- O(N^2)의 시간 복잡도를 가지기 때문에 경량화를 위해 반 정규화를 진행

- 3 Table 이상의 JOIN도 진행할 수 있으며 N개의 테이블에 대해서 N-1 만큼의 JOIN이 발생

 

 

표준 조인

- 실행되는 DBMS에 따라 SQL 문법이 조금씩 달라짐

- 그래서 제작사 구분없이 통일 된 표준 문법을 만들고 그것을 ANSI SQL 이라고 부름

    - 이 ANSI SQL의 문법에 따른 조인 쿼리를 표준 조인이라고 한다

 

문법

1. 기준 조건으로 WHERE 절이 아니라 ON 절을 사용

2. FROM 절에 JOIN의 종류를 적어줌

 

FROM 테이블 1 조인 테이블 2

ON 조건식 1

 

- 조인 (LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN, NATURAL JOIN, CROSS JOIN)

- 조건식 1 : 조인을 수행할 기준 키를 사용해서 조인 조건을 명시한다 

 

 

JOIN의 종류

내 기준 제일 잘 정리된 블로그는 아래과 같다

https://ju-hy.tistory.com/102

 

[SQL] INNER JOIN, OUTER JOIN, NATURAL JOIN

Join이란? Join 연산은 서로 다른 2개의 테이블을 결합하는 연산이다. 이 때 결합하는 방식에 따라 Inner Join, Outer Join, Natural Join 등으로 나뉜다. Inner Join SELECT * FROM instructor JOIN teaches SELECT * FROM instruct

ju-hy.tistory.com

 

 

INNER JOIN (EQUI JOIN, Non EQUL JOIN)

- 일종의 교집합 개념

- EQUI JOIN : 조건이 등식(Equal)을 조건으로 사용할 때 발생하는 JOIN

- Non EQUL JOIN  : 조건이 >, <, <=, >= 등을 사용하는 JOIN

 

ex)

SELECT A1.ACTOR ACT_NO1, A2.ACTOR_N2, A2.MOVIE_NO, A1.Name, A1.GENDER

FROM ACTOR A1 INNER JOIN APPR

ON A1.ACTOR_NO = A2.ACTOR_NO;

 

NATURAL JOIN

- SQL Server에서는 NATURAL JOIN을 지원하지 않음

- 두 테이블 간에 동일한 이름을 갖는 모든 칼럼들에 대해 EQUI(=) JOIN을 수행

- 두 테이블에서 같은 이름의 칼럼에 대해서는 동일한 칼럼값을 가지는 행만 병합

- NATURAL JOIN은 조인 조건을 내포하고 있어서 ON절과 Alias 사용 불가

 

 

 

OUTER JOIN

- 일종의 합집합 개념

- 기준이 되는 키에 따른 칼럼값이 존재하지 않더라도 모든 튜플을 병합하는 것

- LEFT OUTER JOIN

왼쪽의 모든 행을 포함시키면서 Join 수행

- 빈 값들은 Null 값으로 채운다

 

- RIGHT OUTER JOIN

오른쪽의 모든 행을 포함시키면서 Join 수행

- 빈 값들은 Null 값으로 채운다

 

- FULL OUTER JOIN

왼쪽과 오른쪽의 모든 행을 포함시키면서 Join 수행

- 빈 값들은 Null 값으로 채운다

 

 

CROSS JOIN

왼쪽 테이블의 각 행에 대한 오른쪽 테이블의 모든 행의 대응을 조합하여 결과를 출력

왼쪽이 M행이고 오른쪽이 N행이며 CROSS JOIN 의 결과는 카테시안 곱(Cartesian Product) M x N 이다

 

728x90