SQL Join
Inner Join
—-
Equi Join (동등 조인)
- 두개의 테이블을 비교하여 같은 데이터만 불러오는 교집합
Example)
< Table A > a b - - 1 a 2 b 3 c < Table B > a b c - - 2 b b 3 c e < Output Table > a b b c 2 b b b 3 c c e
Query1 :
select A.a, A.b, B.c from A inner join B on A.a = B.a;
Query2 : select A.a, A.b, B.c from A, B where A.a = B.a;
Natural Join (자연 조인)
- 동등 조인과 거의 유사하나 같은 이름을 가진 컬럼은 한 번만 추출한다.
< Table A > a b - - 1 a 2 b 3 c < Table B > a b c - - 2 b b 3 c e < Output Table > a b c 2 b b 3 c e
Query :
select A.a, A.b, B.c from A natural join B;
Cross Join (크로스 조인 or Cartesian Product)
- 조인에 참여한 테이블들의 모든 데이터가 추출된다.
Query1 : select * from A cross join B;
Query2 : select * from A, B;
Outer Join
Left Outer Join
- 왼쪽 테이블을 기준으로 두개의 테이블을 비교하여, 왼쪽의 데이터가 오른쪽 테이블에 없으면 NULL 로 표현된다.
Example)
< Table A > a b - - 1 a 2 b 3 c < Table B > a c - - 2 b 3 e < Output Table > a b c 1 a null 2 b b 3 c e
Query :
select A.a, A.b, B.c from A left outer join B on A.a = B.a;
Right Outer Join
- 오른쪽 테이블을 기준으로 두개의 테이블을 비교하여, 오른쪽의 데이터가 왼쪽 테이블에 없으면 NULL 로 표현된다.
Example)
< Table A > a b - - 1 a 2 b 3 c < Table B > a c - - 2 b 3 e < Output Table > a b c 2 b b 3 c e
Query :
select A.a, A.b, B.c from A right outer join B on A.a = B.a;