728x90
Join ( Oracle )
1. Inner Join 2. Outer Join 3. Non-equi Join 4. Self Join
Join : 두 개 이상의 테이블을 서로 묶어서 하나의 테이블로 출력하는 것
1. Inner Join
이너 조인은 서로 매칭되는 행에 대해서만 묶어서 조회한다. 가장 보편적이다.
SELECT *
FROM EMPLOYEE INNER JOIN DEPARTMENT
ON EMPLOYEE.DepartmentID = DEPARTMENT.DepartmentID;
SELECT *
FROM EMPLOYEE, DEPARTMENT
WHERE EMPLOYEE.DepartmentID = DEPARTMENT.DepartmentID;
2. Outer Join
아우터 조인은 매칭되지 않는행도 함께 join 한다.
Outer Join에는 Left Outer Join, Right Outer Join, Full Outer Join이 있다.
Left, Right는 모두 조회할 테이블 방향이다.
SELECT *
FROM A LEFT OUTER JOIN B ON A.CODE = B.CODE
SELECT *
FROM A FULL OUTER JOIN B ON A.CODE = B.CODE
WHERE A.CODE IS NULL OR B.CODE IS NULL
추가)
SQL> select e.empno, d.dname, e.ename, e.sal
2 from emp e, dept d
3 where e.deptno = d.deptno(+);
(+) : 정확하게 일치하는 행말고도 다 보이게 +null 레코드들을 만들어준다. 보통 parent 에 붙여준다.
3. Non-equi Join
between을 사용하여 매칭 컬럼 없이 범위로 join 한다.
SQL> select e.empno, e.sal, g.grade
2 from emp e, salgrade g
3 where e.sal between g.losal and g.hisal;
4. Self Join
셀프 조인은 참조할 테이블이 자기자신인 경우이다. 꼭 별칭을 써서 구분해야한다.
SQL> select e.empno 사원번호, e.ename 사원명, e.mgr “관리자 코드”, m.ename 관리자명
2 from emp e, emp m
3 where e.mgr = m.empno(+);
self조인
-----------(E)-----------child
employee_id
first_name
manager_id # e.mgr
salary
-----------(M)----------parent
employee_id # m.empno
first_name
manager_id
salary
참고)
[블로그] Tech
728x90
'Programming > SQL' 카테고리의 다른 글
SQL / 오라클 문법 / KEEP 함수 (0) | 2021.04.09 |
---|---|
SQL / DDL (Data Definition Language) 데이터 정의어 (1) | 2021.03.16 |
SQL / 서브쿼리 / Inline View 인라인뷰 / Scala Subquery 스칼라 서브쿼리 (0) | 2021.03.14 |
SQL / 그룹 연산 함수 / group by / having절 (0) | 2021.03.13 |
SQL / Oracle 오라클 / 함수 정리 (문자/숫자/날짜/변환/조건/NULL) (0) | 2021.03.13 |
댓글