MySQL inner join, outer join 사용법 및 예제
페이지 정보
본문
INNER JOIN :
- 두개의 집합 (A, B) 의 교집합 이라고 이해하시면 됩니다.
A {1,2,3} , B {2,3,4 }
이면 {2,3} 이 교집합입니다
모두의 값에 있는 행들만 포함시키고 그렇지 않는 행들은 제외 시킵니다.
INNER JOIN
table1, table2 의 INNER JOIN 이면 차를 소유하고 있는 사람만 추출된다.
select table1.A, table1.B, table2.C
from table1 INNER JOIN table2 ON table1.A=table2.A
OUTER JOIN
OUTER JOIN 에는 LEFT , RIGHT, FULL OUTER JOIN 등의 세가지 형식이 있습니다.
두 테이블에서 지정된 쪽인 LEFT 또는 RIGHT 쪽의 모든 결과를 보여준후 반대쪽에 매칭되는 값이 없어도 보여주는 JOIN 입니다.
JOIN 이전에 나오는 테이블이 왼쪽(LEFT)테이블이 되고, JOIN 이후에 나오는 테이블은 오른쪽(RIGHT)테이블이 됩니다.
LEFT OUTER JOIN : 좌측을 기준
select table1.A, table1.B, table2.C
from table1 left outer join table2 on table1.A = table2.A
select T1.A, T1.B, T2.C
from table1 as T1 left outer join table2 as T2 on T1.A = T2.A
RIGHT OUTER JOIN : 우측을 기준
select table1.A, table1.B, table2.C
from table1 right outer join table2 on table1.A = table2.A
select T1.A, T1.B, T2.C
from table1 as T1 right outer join table2 as T2 on T1.A = T2.A
FULL OUTER JOIN : 양쪽 테이블을 둘다 기준으로
select table1.A, table1.B, table2.C
from table1 full outer join table2 on table1.A = table2.A
select T1.A, T1.B, T2.C
from table1 as T1 full outer join table2 as T2 on T1.A = T2.A
참고로 쿼리문 작성할때 아래와 같이 하면 올바르지 않게 작동합니다.
select *
from table1 as T1 left join table2 as T2 on T1.A = T2.A
참고자료
https://lael.be/81
http://blog.naver.com/sshuikr/100122575125
- 두개의 집합 (A, B) 의 교집합 이라고 이해하시면 됩니다.
A {1,2,3} , B {2,3,4 }
이면 {2,3} 이 교집합입니다
모두의 값에 있는 행들만 포함시키고 그렇지 않는 행들은 제외 시킵니다.
INNER JOIN
table1, table2 의 INNER JOIN 이면 차를 소유하고 있는 사람만 추출된다.
select table1.A, table1.B, table2.C
from table1 INNER JOIN table2 ON table1.A=table2.A
OUTER JOIN
OUTER JOIN 에는 LEFT , RIGHT, FULL OUTER JOIN 등의 세가지 형식이 있습니다.
두 테이블에서 지정된 쪽인 LEFT 또는 RIGHT 쪽의 모든 결과를 보여준후 반대쪽에 매칭되는 값이 없어도 보여주는 JOIN 입니다.
JOIN 이전에 나오는 테이블이 왼쪽(LEFT)테이블이 되고, JOIN 이후에 나오는 테이블은 오른쪽(RIGHT)테이블이 됩니다.
LEFT OUTER JOIN : 좌측을 기준
select table1.A, table1.B, table2.C
from table1 left outer join table2 on table1.A = table2.A
select T1.A, T1.B, T2.C
from table1 as T1 left outer join table2 as T2 on T1.A = T2.A
RIGHT OUTER JOIN : 우측을 기준
select table1.A, table1.B, table2.C
from table1 right outer join table2 on table1.A = table2.A
select T1.A, T1.B, T2.C
from table1 as T1 right outer join table2 as T2 on T1.A = T2.A
FULL OUTER JOIN : 양쪽 테이블을 둘다 기준으로
select table1.A, table1.B, table2.C
from table1 full outer join table2 on table1.A = table2.A
select T1.A, T1.B, T2.C
from table1 as T1 full outer join table2 as T2 on T1.A = T2.A
참고로 쿼리문 작성할때 아래와 같이 하면 올바르지 않게 작동합니다.
select *
from table1 as T1 left join table2 as T2 on T1.A = T2.A
참고자료
https://lael.be/81
http://blog.naver.com/sshuikr/100122575125
댓글목록
등록된 댓글이 없습니다.