2017년 10월 24일 화요일

MySQL JOIN 정리

JOIN

다른 테이블 간의 데이터를 연결시켜 사용하는 것 

INNER 조인

일반적인 용도에 사용되며, 조건에 맞는 데이터를 두 테이블에서 모두 추출해낸다.

예) 
1
2
3
4
select board.bnum, board.title, reply.rnum
from free_board as board join
free_reply as reply 
on board.bnum = reply.bnum
cs
결과를 보면 게시물의 bnum과 댓글의 bnum이 같은 결과만 가져오는걸 알 수 있다. 

LEFT/RIGHT 조인

기준 테이블을 설정해 준다. 
FROM A LEFT/RIGHT JOIN B ON ~ 형태이며 레프트 조인은 A가 기준 라이트 조인은 B가 기준이 된다.  

예)
1
2
3
4
select board.bnum, board.title, reply.rnum
from free_board as board left join
free_reply as reply 
on board.bnum = reply.bnum
cs
결과를 보면 board가 기준의 되었기 때문에 조건에 맞지 않아 rnum이 없더라도 board의 bnum은 모두 불러오고 rnum이 없더라도 null 값으로 표기함을 알 수 있다.

INNER JOIN = JOIN
LEFT OUTER JOIN = LEFT JOIN
RIGHT OUTER JOIN = RIGHT JOIN 


CROSS JOIN 조인

집합에서의 곱 개념이며, A={a, b, c} B={1,2,3,4} 이면
A CROSS JOIN은 (a,1)(a,2)(a,3)(a,4)(b,1)(b,2).....(c,3)(c,4)가 된다. 


참고

댓글 없음:

댓글 쓰기