개발공작소
article thumbnail
728x90
반응형

JOIN은 관계형 데이터베이스 (일반적으로 많이 쓰이는 Table, 행, 열 로 이루어진 데이터 베이스 ) 에서 많이 사용한다.

그럼 바로 하나씩 알아보자. ( JOIN을 공부하기 앞서 테스트용 Table 2개는 필수 - 첨부파일(dump.txt) 참조

dump.txt
0.46MB

나는 comtnweblog와 userTable 이렇게 2개를 만들었다.


그럼 바로 이 2개의 테이블을 가지고 한번 테스트를 해보겠다.

 

1. INNER JOIN

INNER JOIN 이름은 생소할 지 몰라도 누구나 다 한번 쯤은 써봤을 것이다. 

핵심은 조건에 해당 되는 컬럼들만 포함한다.

 

기본 문법은 다음과 같다. (좌) inner join (우) where

테이블A와 테이블B에 있는 컬럼중 조건에 부합( a.column과 b.column이 같은 )하는 녀석들을 추출한다.

inner join은 sql에서 join만 써줘도 inner join으로 인식하기 때문에 inner은 생략해도 상관없다.

inner join과 같은 기능을 하는 녀석이 자주 사용되는 where절이다. 문법만 다를 뿐 같은 기능을 한다고 보면 된다.

 

아래는 실제 테스트 테이블을 이용하여 출력한 모습이다.

왼쪽은 inner join 오른쪽은 where절을 활용한 모습. 문법이 다를 뿐 결과는 같다.

 

 

2. OUTER JOIN ( LEFT, RIGHT )

이제 알아 볼 건 outer join이다. outer join에서 크게 사용하는 건 아래와 같다. 어려울 건 없다.

그냥 왼쪽이냐 오른쪽이냐의 차이일 뿐 여기서는 LEFT OUTER JOIN만 정리해보겠다. ( 왜냐하면 방향만 다르니까.. )

1. LEFT OUTER JOIN

2. RIGHT OUTER JOIN 

 

대충 내용을 이야기 하면 다음과 같다. (LEFT OUTER JOIN)

 

조인문의 왼쪽에 있는 테이블의 모든 결과를 가져 온 후 오른쪽 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL로 표시한다.

 

보통 어떤 경우에 사용하냐하면, SQL에서는 없는 데이터는 아예

추출이 불가능하기 때문에 없는 데이터도 보고싶다! 라고 할 때 많이 사용한다.

예를 들면 통계를 낼 때 1월 17일에 대한 통계가 없어도 목록으로 보여주고 싶다거나.. 할때이다.

 

그럼 바로 문법과 예제를 정리해보겠다.

왼쪽이 문법, 오른쪽이 테스트 테이블로 만든 테스트 쿼리.

오른쪽 이미지를 보면 왼쪽에 있는 userTable의 값은 다 갖고 왔다. 하지만 오른쪽에 있는 comtnweblog의 값은

조건에 맞는 녀석만 갖고 왔다. userTable에는 USER_0.0000이라는 id값이 있지만 comtnweblog에는 없기 때문에

NULL값을 반환해주었다.

 

결국 핵심은 LEFT는 왼쪽에 있는 녀석을 모두, RIGHT는 오른쪽에 있는 녀석을 모두 가져오고, 뒤에 붙은 테이블은

조건에 맞는 녀석만 가져온다. 라고 생각하면 되겠다.

728x90
반응형
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!