Inner Join, Outer Join
Inner Join
두 테이블에서 join condition을 만족하는 tuple들로 result table을 만드는 Join
- FROM table1 INNER(생략가능) JOIN table2 ON join_condition
- join condition에 사용 가능한 연산자(operator)
- =,<,>,!= 등등 여러 비교 연산자가 가능
- join condition에서 null값을 가지는 tuple은 result table에 포함되지 않으므로 주의해야한다.
Outer Join
두 테이블에서 join condition을 만족하지 않는 tuple들도 result table에 포함하는 join
- FROM table1 LEFT OUTER(생략 가능) JOIN table2 ON join_condition
- FROM table1 RIGHT OUTER(생략 가능) JOIN table2 ON join_condition
- FROM table1 FULL OUTER(생략 가능) JOIN table2 ON join_condition (mysql에서는 지원하지 않는다.)
- join condition에 사용 가능한 연산자는 Inner Join과 같다.
equi join을 할 때 USING을 사용하면 쿼리문을 단순화 할 수 있다.
# AS-IS
mysql > SELECT * FROM employee E INNER JOIN department D ON E.dept_id = D.dept_id
# TO-BE
mysql > SELECT * FROM employee E INNER JOIN department D ON USING (dept_id)