조인은 RDBMS에서 2개 이상의 테이블을 연결하여 데이터를 검색하는 방법이다.
일반적인 경우, 행들은 PK나 FK 값의 연관에 의해 JOIN이 성립된다.
하지만, 어떤 경우에는 PK, FK의 관계없이도 논리적인 값들의 연관만으로 JOIN이 성립 가능하다.
Inner Join (내부 조인)
2개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하는 경우에 사용된다.
SELECT A.NAME, B.AGE
FROM TABLE_A A
JOIN TABLE_B B ON A.ID = B.ID
Outer Join (외부 조인)
여러 테이블에서 한쪽에는 데이터가 존재하고, 다른 쪽에는 데이터가 없는 경우 외부 조인을 사용하여 원하는 데이터를 모두 출력한다.
조건에 맞지 않아도 외부 조인에 맞게 결과에 포함된다.
Left Outer Join
기준 테이블의 값과 조인 테이블과 중복된 값을 조회한다.
SELECT A.NAME, B.AGE
FROM TABLE_A A
LEFT OUTER JOIN TABLE_B B ON A.ID = B.ID
테이블 A의 결과를 모두 가져온 후, 테이블 B의 데이터를 매칭한다.
매칭되는 결과가 없을 경우 NULL로 표시된다.
따라서, 테이블 A는 모든 결과가 출력된다.
Right Outer Join
Left Outer Join과 반대로, 오른쪽 테이블 기준으로 Join 한다.
SELECT A.NAME, B.AGE
FROM TABLE_A A
RIGHT OUTER JOIN TABLE_B B ON A.ID = B.ID
테이블 B의 결과를 모두 가져온 후, 테이블 A의 데이터를 매칭한다.
Full Outer Join
A와 B 테이블의 모든 데이터가 검색된다.
SELECT A.NAME, B.AGE
FROM TABLE_A A
FULL OUTER JOIN TABLE_B B ON A.ID = B.ID