본문으로 바로가기

MySQL 자체 조인(self join)

category 데이터베이스/MySQL 2018. 12. 22. 16:50

MySQL 자체 조인(self join)

 

자체조인은 한 릴레이션에 속하는 투플을 동일한 릴레이션에 속하는 투플들과 조인하는 것을 말합니다.

 

즉 자기 테이블에서 참조하는 것이지요.!!

 

형태는

Self JOIN Syntax

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;

이렇게 됩니다.

즉 table1에 대해 조인하는 겁니다.

 

쉽게 말해서 실생활에서는 어디서 찾아볼 수 있을 까요 ??

 

즉 회사에 들어가면 해당 사원에 대해 직속 상사라는게 있습니다. 그 사원의 직속 상사를 찾기 위해서 자체 조인을 하게 되죠.

 

질의가 모든 사원에 대해 사원의 이름과 직속 상사의 이름을 검색 해라. 라는 질의가 들어온다면

 

여러분들은 어떻게 할건가요 ??

 

맞습니다.

 

table1에 어떤 사원의 MANAGER 번호가 같은 테이블 내에서 어떤 사원의 EMPNO와 같으면 그 사원이 직속 상관이겠죠??한 테이블내에서!!

 

이해하시기 힘드실까봐 제가 제 친구들과 제이름을 가지고 그림으로 표현해봤습니다.

 

친구들아 미안하다.

 

우선 질의문은

 

SELECT E.EMPNAME, M.EMPNAME

FROM EMPLOYEE E, EMPLOYEE M

WHERE E.MANAGER = M.EMPNO;

 

그림으로 보시죠. 이해 쉽게 그려봤습니다. 위 질의를 통하여

 

 

위 질의를 통하여 제 이름(이정찬)의 MANGER[E.MANAGER] 와 M.EMPNO인 1003 최민철 학생이 숫자가 같습니다.

즉 이정찬 학생의 메니저, 즉 직속상관이 최민철 학생이라는거죠.

현재 보이는 테이블들도 다 같은 태이블이라는 걸 명심하세요

이 둘을 위 질의문을 통해 조인을 하면

아래와 같습니다.

 

 

 

이렇게 나오게 되겠죠!! 즉 이정찬 사원의 상관은 최민철이다.

 

이해하셨나요.

'데이터베이스 > MySQL' 카테고리의 다른 글

MySQL EXISTS  (0) 2018.12.23
MySQL GROUP BY/HAVING  (0) 2018.12.23
MySQL 전체 외부 조인(FULL OUTER JOIN)  (0) 2018.12.22
eXERD 설치  (0) 2018.12.21
MySQL LEFT/RIGHT 조인  (0) 2018.12.21