평행코드

조인문 (JOIN) 본문

Oracle Database

조인문 (JOIN)

나의 오류는 누군가 겪었던 오류 2023. 9. 28. 13:25

하나 이상의 테이블에서 데이터를 조회하기 위해 사용하고 수행 결과는 하나의 Result Set으로 나옴

 

ANSI 표준 구문

연결에 사용하려는 컬럼 명이 같은 경우 USING() 사용, 다른 경우 ON() 사용

SELECT EMP_ID, EMP_NAME, JOB_CODE, JOB_NAME
FROM EMPLOYEE
JOIN JOB USING(JOB_CODE);

SELECT EMP_ID, EMP_NAME, DEPT_CODE, DEPT_TITLE
FROM EMPLOYEE
JOIN DEPARTMENT ON(DEPT_CODE = DEPT_ID);
INNER JOIN과 OUTER JOIN
OUTER JOIN 종류

기본적으로 JOIN은 INNER JOIN이며 두 개 이상의 테이블을 조인할 때 일치하는 값이 없는 행은 조인에서 제외된다

OUTER JOIN은 일치하지 않은 값도 포함이 되며 반드시 OUTER JOIN 명시

 

1. LEFT OUTER JOIN 합치기에 사용한 두 테이블 중 왼쪽에 기술된 테이블의 컬럼 수를 기준으로 JOIN할 때

2. RIGHT OUTER JOIN 합치기에 사용한 두 테이블 중 오른쪽에 기술된 테이블의 컬럼 수를 기준으로 JOIN할 때

3. FULL OUTER JOIN 합치기에 사용한 두 테이블이 가진 모든 행을 결과에 포함시킬 때

 

SELF JOIN

두 개 이상의 서로 다른 테이블을 연결하는 것이 아닌 같은 테이블을 조인하는 것

SELECT E.EMP_ID, E.EMP_NAME 사원이름, E.DEPT_CODE, E.MANAGER_ID,
		M.EMP_NAME 관리자이름
FROM EMPLOYEE E, EMPLOYEE M
WHERE E.MANAGER_ID = M.EMP_ID;
다중 JOIN

하나 이상의 테이블에서 데이터를 조회하기 위해 사용하고 수행 결과는
하나의 Result Set으로 나옴

SELECT EMP_ID, EMP_NAME, DEPT_CODE, DEPT_TITLE, LOCAL_NAME
FROM EMPLOYEE
JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID)
JOIN LOCATION ON (LOCATION_ID = LOCAL_CODE);

SELECT EMP_ID, EMP_NAME, DEPT_CODE,
		DEPT_TITLE, LOCAL_NAME
FROM EMPLOYEE
JOIN LOCATION ON (LOCATION_ID = LOCAL_CODE)
JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID);

* 에러발생 시, 다중 조인의 경우 조인 순서 매우 중요

'Oracle Database' 카테고리의 다른 글

DDL(ALTER, DROP)  (2) 2023.10.22
DML  (0) 2023.10.22
제약조건(CONSTRAINTS)  (2) 2023.10.09
oracle 데이터조작어, 데이터정의어, 데이터제어어  (0) 2023.09.27
데이터베이스  (0) 2023.09.22