5-8. 자체 조인 > 학습자료 | IOTsw_u2 U2 Project
학습자료

SQL 5-8. 자체 조인

본문

 

테이블을 자체 조인해야 하는 경우가 있다.

 

가령 하나의 게시판이 있다고 치자!


보이는 글 목록에서 특정글이 답변글 이라면 누구에 답변글 일지 알아야 할 필요가 있다.

이때 원글은 기본키 답글은 외래키로 작용한다.

 

각 사원의 관리자 이름을 찾으려면 EMPLOYEES테이블 자체를 조인해야 한다.

즉 자체 조인을 수행해야 한다.

 

이렇게 출력 하는것을

select * from EMPLOYEES where MANAGER_ID = 100 or EMPLOYEE_ID = 100;


조인문으로 바꾼다면

select e1.FIRST_NAME , e2.FIRST_NAME 

from EMPLOYEES e1, EMPLOYEES e2

where e1.EMPLOYEE_ID = e2.MANAGER_ID ; 

 

이때 별칭으로 구별해주지 않으면 에러가 생긴다. 

 

 

 

 

조직도등과 같이 부모관계가 분명해야 할때 자가조인을 사용하면 좋다.

 

 

 

 

 

이 프로세스에서는 테이블을 두 번 검색한다.

첫 번째는 테이블의 LAST_NAME열에서 Whalen을 찾고 MANAGER_ID열에서 101값을 찾는다.

두 번째는 EMPLOYEE_ID열에서 101을 찾고 LAST_NAME열에서 Kochhar를 찾는다.

 

☞답) 

SELECT worker.last_name || ' works for' || manager.last_name

FROM employees worker,employees manager

WHERH worker.manager id = manager.employee id;

 

☞설명)

예제는 EMPLOYEES 테이블을 자체 조인한다.

FROM절에 있는 두 테이블을 시뮬레이트하기 위해서 동일한 EMPLOYEES테이블에 대해 worker와 manager이라는 두 별칭을 사용한다.

이 예제에서 WHERE절은 “사원의 관리자 번호가 관리자의 사원번호와 일치하는 경우”를 의미하는 조인을 포함한다.

 

 

 

 

 

예제) ANSI 조인

오라클 디비 예제 : SELECT e.last_name emp, m.last_name mgr

FROM employees e JOIN employees m

ON (e.manager_id = m.employee_id);

 

MSSQL 디비 예제 :

select t1.title_id, t1.title, t2.price

FROM titles t1, titles t2

WHERE t1.title_id=t2.title_id

 

☞설명)

SELECT e.last_name emp, m.last_name mgr

FROM employees e , employees m

where (e.manager_id = m.employee_id);​ 

 

create table tb1 (

ename varchar(10),

jumin1 char(13),

jumin2 char(13),

)

insert into tb1 values('이나영', '111111', '222222')

insert into tb1 values('아나영', '211111', '122222')

insert into tb1 values('가나영', '311111', '422222')

insert into tb1 values('나나영', '222222', '111111')

select t1.ename, t2.ename

from tb1 t1, tb1 t2

where t1.jumin1=t2.jumin2 

댓글목록

5. JOIN 쿼리 [ 여러 테이블의 데이터 출력 ]
이어쓰기 1.A 5-1. SQL 1999 구문을 사용한 테이블 조인
이어쓰기 2.B 5-2. 등가 테이블 조인
이어쓰기 3.D 5-3. 자연 조인 작성
이어쓰기 4.E 5-4. AND 연산자를 사용한 주가 검색 조건
이어쓰기 5.F 5-5 USING절을 포함하는 조인 작성(오라클에서 사용됨, MSSQL에서는 사용 안됨)
이어쓰기 6.G 5-6. 테이블 별칭 사용
이어쓰기 7.H 5-7. JOIN ON ( ANSI) 절로 조인 작성
이어쓰기 8.I 5-8. 자체 조인
이어쓰기 9.J 5-9 세개 이상의 테이블 조인
이어쓰기 10.K 5-10. 비등가 조인
이어쓰기 11.L 5-11. 포괄 조인
이어쓰기 12.M 5-12. 카티시안 곱 (Cartesian Product)
이 원글에 이어쓰기

학습자료 목록

Total 91건 1 페이지
게시물 검색

IOTsw_u2 정보

회사 . U2
주소 . 어느별 하늘 아래에 있것지요
사업자 등록번호 . 백수임 대표 . 김씨 전화 . 02-123-4567 팩스 . 팩스없음
통신판매업신고번호 . 낼할께 개인정보관리책임자 . 김씨가 알아서 함 부가통신사업신고번호 신고안함
Copyright © 2001-2013 U2. All Rights Reserved.
닫기