- 포괄조인 / 외부조인 (OUTER JOIN)
두 테이블간의 JOIN시 일치하지 않는 행도 포함시켜서 조회하고자 할 때
단, 반드시 LEFT/RIGHT 지정해야함 (기준이 되는 테이블 지정)
1) LEFT [OUTER] JOIN
두 테이블 중 왼편에 기술된 테이블을 기준으로 JOIN
(왼편에 있는 테이블(FROM절에 기술된)에 있는 데이터는 일치하는게 없더라도 조회되도록)
>> ANSI 구문 : EMPLOYEE테이블을 기준으로 해서 모든사원은 무조건 나오게끔 조회
SELECT EMP_NAME, DEPT_TITLE, SALARY, SALARY*12
FROM EMPLOYEE
LEFT /*OUTER*/ JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID);
>> 오라클 전용구문 : 기준으로 삼고자하는 테이블의 반대편 테이블의 컬럼뒤에 (+) 붙이기
SELECT EMP_NAME, DEPT_TITLE, SALARY, SALARY*12
FROM EMPLOYEE, DEPARTMENT
WHERE DEPT_CODE = DEPT_ID(+);
>>부서배치를 받지 않았던 2명의 사원 (하동운, 이오리) 조회됨
2) RIGHT[OUTER] JOIN
>> ANSI구문
SELECT EMP_NAME, DEPT_TITLE, SALARY, SALARY*12
FROM EMPLOYEE
RIGHT JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID);
>>오라클 전용구문
SELECT EMP_NAME, DEPT_TITLE, SALARY, SALARY*12
FROM EMPLOYEE, DEPARTMENT
WHERE DEPT_CODE(+) = DEPT_ID;
>>부서에 배정된 사원이 없는 세개의 부서(D3,D4,D7) 정보도 조회됨
3) FULL [OUTER] JOIN
두 테이블이 가진 모든행을 조회할 수 있음 (단, 오라클 전용구문으로는 안됨)
>>ANSI구문
SELECT EMP_NAME, DEPT_TITLE, SALARY, SALARY*12
FROM EMPLOYEE
FULL JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID);
'ORACLE' 카테고리의 다른 글
ORACLE 04. SELECT_ JOIN _다중조인 (0) | 2022.11.17 |
---|---|
ORACLE 04. SELECT_ JOIN _비등가 조인/ 자체조인/카테시안곱 (0) | 2022.11.17 |
ORACLE 04. SELECT_ JOIN _ 내부조인 (0) | 2022.11.17 |
ORACLE 03. SELECT _ 집계함수 , 집합연산자 (0) | 2022.11.17 |
ORACLE 03. SELECT _ HAVING절 (0) | 2022.11.16 |