ORACLE 조인과 다르게 ANSI 조인은 WHERE 절에 조인문법을 쓰는게 아닌
FROM ~ 테이블1 join 테이블2 ON (테이블1 조인조건문 테이블 2 동일컬럼)
join 테이블 3 on ( 테이블 1 조인조건문 테이블 3 )절을 사용하여 조인한다.
-> ON 절을 쓸때에는 반드시 (괄호) 안에 입력한다.
이름, 직업, 월급 부서위치 출력
select e.ename, e.job, e.sal, d.loc
from emp e join dept d
on (e.deptno = d.deptno );
1999 ansi 문법의 on 절을 사용한 조인문법
오라클 조인문법 과 다른 점은 from 절에 (,) 대신 join 을 쓰고
where 절에 조인조건을 쓰는게 아닌 on 절에 조인조건을 작성하고, where 절에는 검색조건만 입력한다.
문제 직업이 세일즈맨 사원들의 이름,직업,월급,부서위치 출력 on 절 이용 하여 출력
select e.ename, e.job, e.sal, d.loc
from emp e join dept d
on (e.deptno = d.deptno)
where job = 'SALESMAN';
문제 TABLE emp, dept, salgrade 를 조인하여 ename, sal, loc, grade 를 출력 하시오
(해당 쿼리는 oracle join 문법이다.)
select e.ename, e.sal, d.loc, s.grade
from emp e, dept d, salgrade s
where e.deptno = d.deptno
and e.sal between s.losal and s.hisal;
문제 위의 oracle join 결과를 ansi join 문법으로 출력
* oracle join 과는 다르게 하나씩 조인하고 on 절 쓴뒤 첫번재 table 을 기준으로 또 join 후 on 절로 조건문 입력해준다. join ~ on~ , join ~ on ~ .. 이런식
select e.ename, e.sal, d.loc, s.grade
from emp e join dept e
on (e.deptno = d.deptno)
join salgrade s
on (e.sal between s.losal and s.hisal)
문제 위의결과에서 월급이 2500 이상 출력
select e.ename, e.sal , d.loc, s.grade
from emp e join detp d
on (e.deptno = d.deptno)
join salgrade s
on (e.sal between s.losal and s.hisal)
where e.sal >= 2500;
-> 조인후 마지막 where 절에 검색 조건을 주었다.
문제 311 on 절을 이용한 조인문법사용하여 부서위치,부서위치별 토탈월급 출력
select d.loc, sum(e.sal)
from emp e join dept d
on (e.deptno = d.deptno)
group by d.loc;
문제 312 부서위치별 토탈월급과, 맨아래에 총 토탈월급 출력 되도록 하시오
group by 절에 d.loc 별 토탈월급이 출력되는데 맨아래에 총 토탈월급이 출력되려면 rollup 집계함수를 사용해준다.
select d.loc, sum(e.sal)
from emp e join dept d
on (e.deptno = d.deptno)
group by rollup(d.loc);
문제 313 달라스에서 근무하는 사원들 이름,부서위치 출력
select e.ename, d.loc
from emp e join dept d
on (e.deptno = d.deptno)
where d.loc = 'DALLAS';
'Oracle > SQL' 카테고리의 다른 글
SQL ANSI /ISO STANDARD JOIN - Natural Join (공통컬럼 알아서찾음) (0) | 2021.11.25 |
---|---|
SQL ANSI /ISO STANDARD JOIN - ON 절 대신 USING 절 이용 (0) | 2021.11.25 |
SQL Oracle Join - Self join 자기 자신과 조인 (0) | 2021.11.22 |
SQL Oracle Join - Outer join 여러 테이블 조인 (0) | 2021.11.22 |
SQL Oracle Join - NON Equi join 여러 테이블 조인 (컬럼간 연결고리 = X) (0) | 2021.11.22 |