[Oracle] 오라클 INNER JOIN 사용법
- 데이터베이스/오라클
- 2023. 3. 5.
오라클에서 INNER JOIN은 일반적으로 부르는 조인을 의미한다. INNER JOIN은 ANSI JOIN 문법이며 대부분의 데이터베이스에서 동일하게 사용할 수 있는 쿼리문이다. ANSI JOIN은 오라클 10g부터 사용할 수 있으며, 일반적인 오라클 조인과 ANSI JOIN 비교는 하단의 링크를 참고하면 된다.
목차 |
※ 예제의 emp 테이블은 설명을 위해 인위적으로 만든 테이블이며 하단의 첨부파일을 참고하면 된다.
INNER JOIN - 기본 사용법
SELECT a.empno
, a.ename
, a.job
, a.deptno
, b.dname
FROM emp a
INNER JOIN dept b
ON a.deptno = b.deptno
WHERE job IN ('PRESIDENT', 'MANAGER')
emp 테이블과 dept 테이블을 deptno 칼럼으로 조인하는 예제이다.
조인된 dept 테이블의 b.dname 칼럼의 값을 끌어와서 표시할 수 있다.
조인 조건의 deptno 칼럼의 값이 양쪽 테이블에 모두 존재해야 조인이 되며 데이터가 조회된다.
기준 테이블의 deptno = 90은 조인 테이블에 존재하지 않기 때문에 조회되지 않는다.
기준 테이블(emp)의 조인 칼럼(deptno)의 값이 조인 테이블(dept)에 존재하는 emp 테이블의 데이터만 조회된다.
INNER JOIN은 INNER 키워드를 생략해도 동일한 결과가 조회된다.
특수한 상황이 아니면 INNER 키워드를 같이 사용하는 것이 좋다.
INNER JOIN - 조인 칼럼이 여러 개인 경우
SELECT a.empno
, a.ename
, a.job
, a.deptno
, b.dname
, a.locno
FROM emp a
INNER JOIN dept b
ON a.deptno = b.deptno
AND a.locno = b.locno
WHERE job IN ('PRESIDENT', 'MANAGER')
emp 테이블과 dept 테이블을 deptno, locno 두 개의 칼럼으로 조인하는 예제이다.
조인 칼럼이 여러 개인 경우 AND를 순차적으로 사용하여 칼럼을 조인하면 된다.
deptno, locno 칼럼의 값이 동시에 일치하는 데이터만 조회된다.
INNER JOIN - 조인 테이블이 여러 개인 경우
SELECT a.empno
, a.ename
, a.job
, a.deptno
, b.dname
, a.locno
, c.lname
FROM emp a
INNER JOIN dept b
ON a.deptno = b.deptno
INNER JOIN loc c
ON a.locno = c.locno
WHERE job IN ('PRESIDENT', 'MANAGER')
emp 테이블을 dept 테이블과 loc 테이블에 동시에 조인하는 예제이다.
조인할 테이블이 여러 개인 경우 위의 예제처럼 순차적으로 INNER JOIN을 사용하여 작성하면 된다.
기준 테이블(emp)이 dept 테이블과 loc 테이블에 모두 조인된 데이터만 조회된다.