Existem várias junções no Oracle, como junção interna, junção externa esquerda, junção externa direita, junção externa completa, junção cruzada. Este tutorial SQL fornece sintaxe de junção oracle em cada um deles com exemplos
Sintaxe e exemplo de junção interna
Exemplos de duas tabelas e sintaxe
SELECT EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
FROM EMP , DEPT
onde EMP. DEPTNO =DEPT. DEPTNO;
ou
Sintaxe ANSI
SELECIONE EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
FROM EMP INNER JOIN DEPT
no EMP. DEPTNO =DEPT. DEPTNO;
ou
SELECIONE EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
FROM EMP INNER JOIN DEPT
usando (DEPTNO);
Exemplo de junção interna em várias tabelas
SELECIONE EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME,REGION.REGION_NAME
FROM EMP , DEPT,REGION
onde EMP. DEPTNO =DEPT. DEPTNO
e DEPT.REGION_ID=REGION.REGION_NAME;
ou
SELECIONE EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME,REGION.REGION_NAME
FROM EMP
junção interna DEPT no EMP. DEPTNO =DEPT. DEPTNO
junção interna REGION em DEPT.REGION_ID=REGION.REGION_NAME;
ou
SELECT EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME,REGION.REGION_NAME
FROM EMP junção interna DEPT usando (DEPTNO)
junção interna REGION usando (REGION_ID);
Sintaxe e exemplo de junção cruzada
SELECT EMPNO,ENAME, DEPT.DEPTNO,DNAME FROM EMP , DEPT;
ou
SELECT EMPNO,ENAME, DEPT.DEPTNO,DNAME FROM EMP junção cruzada DEPT;
Sintaxe e exemplo do Left Outer Join
selecione empno,ename,emp.deptno,dname
de emp
LEFT OUTER JOIN dept
em emp.deptno=dept.deptno;
- sintaxe do sinal
selecione empno,ename,emp.deptno,dname
de emp ,dept onde emp.deptno=dept.deptno(+);
- está do lado em que NULL é esperado e do lado direito
Sintaxe e exemplos do Right Outer Join
selecione empno,ename,dept.deptno,dname
de emp
direita OUTER JOIN dept
em emp.deptno=dept.deptno;
- sintaxe do sinal
selecione empno,ename,dept.deptno,dname
de emp ,dept onde emp.deptno(+)=dept.deptno;
- está do lado em que NULL é esperado e do lado esquerdo
Sintaxe e exemplos de junção externa completa
select empno,ename,dept.deptno,dname
from emp
full OUTER JOIN dept
on emp.deptno=dept.deptno;
Artigos relacionados
Oracle Joins
Aninhado Loop Join no Oracle
Vários Métodos de Joins no Oracle
Hash Join no Oracle