Oracle DBA/SQL

059 여러 테이블의 데이터를 조인해서 출력하기 2(NON EQUI JOIN)

Nuez 2023. 6. 30. 15:31
반응형

※ 오라클 조인 문법 4가지

 

1. EQUI JOIN : 조인하려는 두 테이블의 조인조건이 이퀄(=)조건인 조인 문법

2. NON EQUI JOIN : 조인하려는 두 테이블의 조인 조건이 이퀄(=) 조건이 아닌 조인 문법

3. OUTER JOIN

4. SELF JOIN


문제 210. emp 테이블과 salgrade 테이블을 조인해서 이름,월급, grade를 출력하시오. 

좌: emp 테이블 / 우 : salgrade 테이블

 

둘이 똑같은 컬럼은 없지만 비슷한 컬럼은 있음. 

emp : sal(월급)

salgrade : losal(최저월급), hisal(최대월급)

 

emp의 월급값이 salgrade의 최소,최대 월급값의 사이에 있다는 의미로 조인해주는 방식을 택하면 됨. 

(우회적인 방법으로 연결고리를 찾는 것)

 

SELECT E.ename, E.sal, S.grade
FROM emp E, salgrade S
WHERE E.sal BETWEEN S.losal AND S.hisal;


문제 311. 위의 결과를 다시 출력하는데 grade가 1등급인 데이터만 출력하시오.

SELECT E.ename, E.sal, S.grade
FROM emp E, salgrade S
WHERE E.sal BETWEEN S.losal AND S.hisal
    AND S.grade = 1;


문제 312. grade 가 2등급인 사원들의 이름, 월급, grade, 부서 위치를 출력하시오. 

SELECT E.ename, E.sal, S.grade, D.loc
FROM emp E, salgrade S, dept D
WHERE E.sal BETWEEN S.losal AND S.hisal -- 조인 조건 1
    AND E.deptno = D.deptno -- 조인 조건 2
    AND S.grade = 2; -- 검색 조건