: 조인하려는 테이블 사이의 조인조건이 equal 조건이 아닌 경우
drop table salgrade;
create table salgrade
( grade number(10),
losal number(10),
hisal number(10) );
insert into salgrade values(1,700,1200);
insert into salgrade values(2,1201,1400);
insert into salgrade values(3,1401,2000);
insert into salgrade values(4,2001,3000);
insert into salgrade values(5,3001,9999);
commit;
select e.ename, e.sal, s.grade
from emp e, salgrade s
where e.sal between s.losal and s.hisal;
💡 위와 같이 조인 조건이 equal이 아닐 때는
non equi join
사용
select e.ename, e.sal, s.grade, e.job
from emp e, salgrade s
where e.sal between s.losal and s.hisal
and e.job='SALESMAN';
select d.loc, count(*) 인원수
from emp e, dept d
where e.deptno = d.deptno
and d.loc != 'DALLAS'
group by d.loc
having count(*) >= 2
order by 인원수 desc;
select e.ename, e.sal, d.loc
from emp e, dept d
where e.deptno = d.deptno ;
select e.ename, e.sal, s.grade
from emp e, salgrade s
where e.sal between s.losal and s.hisal;
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;
💡 DEPT —————— EMP ———— SALGRADE
e.deptno = d.deptno
e.sal between s.losal and s.hisal
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
and d.loc = 'DALLAS'
order by sal;
d.loc = 'DALLAS'