먼저, join에 관련된 학습을 하기 위해서 아래와 같은 테스트용 테이블을 작성 했다.

 

 

왜 psql.exe를 사용하지 않느냐고?

콘솔은 멋있기는 한데 사용하기가 역시 불편하다.. 테이블 확인하기도 어렵고 해서

일단은 pgAdmin III를 이용해서 간단한 sql문법은 테스트해 볼 예정이다.

 

뭐 어쨋든 위와 같은 테이블을 작성 해 보았다.

카페에서 음료를 판매하는 상황이라고 가정하고 아래와 같은 3개의 테이블을 작성했다.

이름, 주소등의 간단한 유저정보를 가지고 있는 usrTable,

판매하는 음료 상품정보를 가지고 있는 prdTable,

어떤 유저가 어떤 음료를 주문했는지 정보를 가지고 있는 buyTable.

 

INNER JOIN의 기능은 두 테이블을 합치는 기능이란다.

기본 문법은 아래와 같다.

 

 SELECT * FROM

   table1 INNER JOIN table2

   on [조건1]

   table 3 INNER JOIN table 4

   on[조건2]

where [조건3]

 

INNER JOIN되어 형성된 테이블이 FROM다음에 들어가게 된다고 생각해도 좋을 것 같다.

그리고 INNER JOIN은 중첩되어 요청되도 된다.

 

위 문법에 보면 조건이 이것 저것 여러개 있는데, 적용되는 조건의 순서로 따지면

조건 1 -> 조건 2 -> 조건 3

순서로 조건이 적용된다.

 

조건 1, 2를 가지고 테이블을 조인하여 테이블을 만들고 이 테이블에서 where의 조건 3을

이용하여 마지막 select 문장이 실행되는 거라고 생각하면 된다.

 

예를 들어 김태흐가 뭘 시켜 먹었는지 알고 싶은 경우에 다음과 같은 쿼리를 요청 할 수 있다.

 

 

 

 

결과는 아래와 같다..

 

 

또 하나의 예로, 서울사람들은 어떤 음료를 마시는지 알고 싶다면..

아래와 같은 구문을 써서 결과를 알아 볼 수 도 있다.

 

서울 사람들은 카페모카와 아포가토를 주문했다.

 

이렇듯 INNER JOIN은 두 테이블이 가진 데이터 행중에 특정 조건을 만족하는 행을 이어 붙여 새로운 데이터 행을 만들어 내는 용도라고 생각하면 좋을 것 같다.

Posted by 굿쟌
,