일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Notice
Tags
- 책리뷰
- 회사싫어
- 도전
- Update
- data
- 테이블삭제
- SQLD
- 홈트
- 30일챌린지
- where절
- rename
- 빅데이터
- 회사생활
- SQL
- constraint
- 보울룸
- INSERT
- 인덱스
- 전생
- Drop
- 30일글쓰기
- ROWNUM
- 직장인일기
- 데이터모델링
- 일기
- ERD
- 직장생활
- 환생
- 넷플릭스
- null
Archives
- Today
- Total
최보름달
[SQL] 셀프 조인(SELF JOIN) 본문
셀프 조인이란, 동일 데이블 사이의 조인을 말한다.
FROM 절에 동일 테이블이 두 번 이상 나타난다.
같은 테이블끼리 조인하는 것이므로 별칭(ALIAS)을 꼭 사용해야 한다.
예시
SELECT A.EMPNO 사원번호, A.ENAME 사원명, B.ENAME 관리자명
FROM EMP A, EMP B
WHERE A.MGR = B.EMPNO
사원이라는 테이블에는 사원과 관리자가 모두 하나의 사원 개념으로 동일시하여 같이 입력되어 있다.
이것을 이용해서 "자신과 상위, 차상위 관리자를 같은 줄에 표시하라"는 문제를 셀프 조인을 이용해서 풀 수 있다.
SELECT E1.ENAME 사원, E1.MGR 관리자, E2.MGR 차상위_관리자
FROM EMP E1, EMP E2
WHERE E1.MGR = E2.EMPNO
ORDER BY E2.MGR DESC, E1.MGR, E1.EMPNO
관리자가 존재하지 않는 데이터까지 모두 표시하려면 이렇게 해야한다. (left join 이용)
SELECT E1.ENAME 사원, E1.MGR 관리자, E2.MGR 차상위_관리자
FROM EMP E1 LEFT OUTER JOIN EMP E2
ON (E1.MGR = E2.EMPNO)
ORDER BY E2.MGR DESC, E1.MGR, E1.EMPNO
kdata 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다.
'문송한 회사생활 > SQL 공부' 카테고리의 다른 글
[SQL] 그룹 함수 Group Function (ROLLUP, CUBE, GROUPING SETS) (0) | 2020.08.16 |
---|---|
[SQL] 뷰(View) (0) | 2020.08.16 |
[SQL] 오라클 계층형 질의 (Hierarchical Query) (0) | 2020.08.16 |
[SQL] 집합 연산자 (UNION, UNION ALL, INTERSECT, EXCEPT, MINUS) (0) | 2020.08.15 |
[SQL] OUTER JOIN (LEFT, RIGHT, FULL) (0) | 2020.08.15 |