[MySQL] SQL JOIN(조인)
생활코딩의 [DATABASE2 MySQL - 17.JOIN] 강의 내용을 토대로 작성한 글입니다.
위와 같이 author와 topic 테이블을 구성하였고, 'topic.author_id' column은 'author.id' column과 연계된다.
이 때, 다음과 같이 JOIN(조인)을 사용한다.
mysql> SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;
위와 같이 topic 테이블과 author 테이블의 id 값이 결합되어 출력된다. 관계형 데이터베이스의 중요한 기능으로, 가독성을 높여준다.
[SQL JOIN]
JOIN은 두 개 이상의 테이블에서 관련성이 있는 column에 기초하여 row를 결합하는 데 사용된다.
- INNER JOIN
양쪽 테이블 모두에서 일치하는 레코드를 반환한다.
mysql> SELECT column_name(s)
-> FROM table1
-> INNER JOIN table2 ON table1.column_name = table2.column_name;
- LEFT (OUTER) JOIN
왼쪽 테이블(table1)의 모든 레코드와 오른쪽 테이블(table2)의 일치하는 레코드를 반환한다. 오른쪽에 일치하는 레코드가 없으면 오른쪽에서는 결과가 NULL이 된다.
mysql> SELECT column_name(s)
-> FROM table1
-> LEFT JOIN table2 ON table1.column_name = table2.column_name;
- RIGHT (OUTER) JOIN
오른쪽 테이블(table2)의 모든 레코드와 왼쪽 테이블(table1)의 일치하는 레코드를 반환한다. 왼쪽에 일치하는 레코드가 없으면 오른쪽에서는 결과가 NULL이 된다.
mysql> SELECT column_name(s)
-> FROM table1
-> RIGHT JOIN table2 ON table1.column_name = table2.column_name;
- FULL (OUTER) JOIN
왼쪽 테이블(table1) 또는 오른쪽 테이블(table2) 레코드에 일치하는 모든 레코드를 반환한다.
mysql> SELECT column_name(s)
-> FROM table1
-> FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
[참고]
opentutorials.org/module/3300/19521