Database/MySQL

INNER JOIN, OUTER JOIN [MySQL]

민돌이 2017. 9. 14. 11:43
반응형


01. INNER JOIN


- 두 테이블간의 조인 조건을 만족하는 row를 리턴

ex) {1,2,3,4}, {1,2} 를 INNER JOIN 을 하게 되면

결과값 : {1,2}가 나온다는 교집합(?)적인 JOIN 형태





TEST1이라는 테이블에 세개의 row가 있고

TEST2에는 2개의 로우가 있다. 이것은 INNER JOIN을 하게 되면



SELECT    TEST1.id

, TEST1.beforeValue

, TEST2.afterValue

FROM    TEST1 INNER JOIN TEST2 ON TEST1.id = TEST2.id




라는 결과가 나옵니다.





02. OUTER JOIN


- LEFT JOIN

- RIGHT JOIN 

- FULL OUTER JOIN

세가지의 방식이 있습니다.

JOIN 이전에 나오는 테이블이 LEFT 테이블이 되고
JOIN 이후에 나오는 테이블이 RIGHT 테이블이 됩니다. 


02-1. LEFT OUTER JOIN -> JOIN 이전에 나오는 테이블을 기준


SELECT    TEST1.id

, TEST1.beforeValue

, TEST2.afterValue

FROM    TEST1 LEFT OUTER JOIN TEST2 ON TEST1.id = TEST2.id





02-2. RIGHT JOIN OUTER JOIN -> JOIN 이후에 나오는 테이블 기준


SELECT    TEST1.id

, TEST1.beforeValue

, TEST2.afterValue

FROM    TEST1 RIGHT OUTER JOIN TEST2 ON TEST1.id = TEST2.id






03-2. FULL OUTER JOIN -> JOIN 하는 테이블 모두를 표시해줄때


- 거의 사용하지도 않고 union이라는것을 사용하기 때문에 다음에 따로 다루도록 하겠습니다.

반응형