보안을 그리다, 훈이

[MySQL] SQL JOIN(조인) 본문

Programming/PHP & MySQL

[MySQL] SQL JOIN(조인)

HooNeee 2021. 3. 30. 19:45

생활코딩의 [DATABASE2 MySQL - 17.JOIN] 강의 내용을 토대로 작성한 글입니다.

 

author, topic 테이블 구성

 

위와 같이 author와 topic 테이블을 구성하였고, 'topic.author_id' column은 'author.id' column과 연계된다.

이 때, 다음과 같이 JOIN(조인)을 사용한다.

mysql> SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;

LEFT (OUTER) JOIN 결과 출력

 

위와 같이 topic 테이블과 author 테이블의 id 값이 결합되어 출력된다. 관계형 데이터베이스의 중요한 기능으로, 가독성을 높여준다.

 

 

[SQL JOIN]

JOIN은 두 개 이상의 테이블에서 관련성이 있는 column에 기초하여 row를 결합하는 데 사용된다.

 

SQL JOIN 종류

 

 

- 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

www.w3schools.com/sql/sql_join.asp

iwordpower.com/mysql-join-query-examples

Comments