[DB기초] 05. Inner Join, Left Join

2015. 1. 6. 22:53DB/DB기초

Join 을 간단하게 설명하면 여러 테이블을 쪼개고 붙여서 쓰는걸 Join이라고 한다.

단 하나의 일관성 있는 컬럼이 필요하다. 

조인은 크게 3가지로 나누어지며 equal Join, Inner Join, Outer Join 으로 나눌수 있다. 

1. Equal Join 은 일반적으로 사용하는 =을 쓰는걸 말한다.

2. Inner Join의 경우 두개의 테이블의 교집합이라고 보면 된다.

사용방법은 

select orders.orderID,customers.customername,orders.orderdate 

from orders inner join customers 

on orders.customerid=customers.customerid;

위와 같이 쓸 수 있다.

일반적으로 테이블 명을 쓰는 from tableA inner join tableB on 조건으로 사용한다.


--- SQL INNER JOIN Syntax ---

SELECT column_name(s)

FROM table1

INNER JOIN table2

ON table1.column_name=table2.column_name;


on 뒤에는 어떤것이 교집합으로 들어갈지 선택해주어야 한다.

3. Outer Join은 Left Outer Join, Right Outer Join, Full Outer Join 또  이렇게 3가지로 나눌 수 있다.

결과는 왼쪽 테이블에 있는 데이터는 모두 표시하고 추가로 2번테이블의 정보를 표시하는 방식이다.

SELECT customers.customername, orders.orderid 

FROM customers

LEFT JOIN Orders

ON customers.customerid=orders.customerid

ORDER BY customers.customername;

--- SQL LEFT JOIN Syntax ---

SELECT column_name(s)

FROM table1

LEFT (OUTER) JOIN table2

ON table1.column_name=table2.column_name;

이때 OUTER은 제외 할 수 있다.


SQL Join 들의 다른점

INNER JOIN : 두개의 테이블에서 적어도 하나이상 일치할경우 행을 반환한다.

LEFT JOIN : 오른쪽 테이블로 부터 왼쪽 테이블과 일치할경우 행을 반환한다.

RIGHT JOIN: 왼쪽 테이블로 부터 오른쪽 테이블과 일치할 경우 행을 반환한다.

FULL JOIN: 테이블의 모든값을 반환한다.


'DB > DB기초' 카테고리의 다른 글

[DB기초] 04. Between, Aliases  (0) 2014.12.28
[DB기초] 03. IN 연산자  (0) 2014.12.25
[DB기초] 02. Like  (0) 2014.12.24
[DB기초] 01. 검색수 레코드 제한하기!!  (0) 2014.12.23
[DB기초] 기초의 시작!!  (0) 2014.12.22