[DB기초] 05. Inner Join, Left Join
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: 테이블의 모든값을 반환한다.