web developer

[sql] JOIN 정리 본문

SQL/Oracle SQL

[sql] JOIN 정리

trueman 2022. 1. 12. 14:56
728x90
728x90

1. JOIN

JOIN이란, 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 의미한다.


2. INNER JOIN

일반적으로 JOIN이라 하면, INNER JOIN을 지칭하는 것이다.


INNER JOIN은 조인될 조건이 부합하는 행에 대해서만 JOIN이 발생하는 것이다.
* 둘 테이블에 공통으로 해당되는 컬럼에 대해서는 테이블명.칼럼명 형태로 작성해야 한다.


SELECT 열 목록
FROM 첫 번째 테이블
    INNER JOIN 두 번째 테이블
    ON 조인될 조건
WHERE 검색조건

3. OUTER JOIN

INNER JOIN은 JOIN 조건에 부합하는 행만 JOIN이 발생하는 반면에, OUTER JOIN조건에 부합하지 않는 행까지도 포함시켜 결합한 결과

 

즉, 조건에 맞지 않아도 해당하는 행을 출력하고 싶을 때 사용할 수 있다.

 

SELECT 열 목록
FROM 첫번째 테이블 (LEFT 테이블)
    [LEFT | RIGHT | FULL] OUTER JOIN 두번째 테이블 (RIGHT 테이블)
                          ON 조인될 조건
WHERE 검색 조건

4. LEFT OUTER JOIN

조인문의 왼쪽에 있는 테이블의 모든 결과를 가져 온 후 오른쪽 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL로 표시한다.


즉, FROM 첫번째 테이블 LEFT OUTER JOIN 두번째 테이블이라면?

기준 테이블인 첫번쨰 테이블의 컬럼은 다 출력되어지는 반면에, 두번쨰 테이블은 해당 컬럼이 없으면 NULL로 출력되는 결과를 가져온다.


select *
from A a left outer join B b
on a.name = b.name;

5. RIGHT OUTER JOIN

조인문의 오른쪽에 있는 테이블의 모든 결과를 가져온 후 왼쪽의 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL을 표시한다.

select *
from A a right outer join B b
on a.name = b.name;
--right outer join
select *
from B b left outer join A a
on a.name = b.name;
-- 기준 테이블을 반대로 한 경우 
-- left outer join


6. FULL OUTER JOIN

LEFT OUTER JOIN 과 RIGHT OUTER JOIN을 합친 것으로, 양쪽 모두 조건이 일치하지 않는 것까지 모두 결합해 출력한다.

즉, 한쪽을 기준으로 조건과 일치하지 않는 것을 출력하는 것이 아니다.
따라서, 테이블들의 모든 행이 조건에 관계없이 결합된다.

SELECT 검색할 컬럼
FROM 테이블명 FULL OUTER JOIN 테이블명2
ON 테이블.컬럼명 = 테이블2.컬럼명;



출처 : https://superman28.tistory.com/23

출처 : http://sweeper.egloos.com/3002133

728x90
728x90
Comments