Hay varias uniones en Oracle como unión interna, unión externa izquierda, unión externa derecha, unión externa completa, unión cruzada. Este tutorial de SQL proporciona la sintaxis de unión de Oracle en cada uno de ellos con ejemplos
Sintaxis y ejemplo de unión interna
Ejemplos de dos tablas y sintaxis
SELECCIONE EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
FROM EMP , DEPT
donde EMP. DEPTNO=DEPT. NÚMERO DE DEPARTAMENTO;
o
sintaxis ANSI
SELECCIONE EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
DE EMP INNER JOIN DEPT
en EMP. DEPTNO=DEPT. NÚMERO DE DEPARTAMENTO;
o
SELECCIONE EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
FROM EMP INNER JOIN DEPT
usando (DEPTNO);
Ejemplo de combinación interna de varias tablas
SELECCIONE EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME,REGION.REGION_NAME
FROM EMP , DEPT,REGION
donde EMP. DEPTNO=DEPT. NÚMERO DE DEPARTAMENTO
y DEPT.REGION_ID=REGION.REGION_NAME;
o
SELECCIONE EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME,REGION.REGION_NAME
FROM EMP
inner join DEPT en EMP. DEPTNO=DEPT. DEPTNO
reunión interna REGION en DEPT.REGION_ID=REGION.REGION_NAME;
o
SELECCIONE EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME,REGION.REGION_NAME
FROM EMP inner join DEPT usando (DEPTNO)
inner join REGION usando (REGION_ID);
Sintaxis y ejemplo de Cross Join
SELECT EMPNO,ENAME, DEPT.DEPTNO,DNAME FROM EMP , DEPT;
o
SELECT EMPNO,ENAME, DEPT.DEPTNO,DNAME FROM EMP cross join DEPT;
Sintaxis y ejemplo de combinación externa izquierda
seleccione empno,ename,emp.deptno,dname
desde emp
PARTE EXTERNA IZQUIERDA dept
en emp.deptno=dept.deptno;
- sintaxis de signos
select empno,ename,emp.deptno,dname
from emp ,dept where emp.deptno=dept.deptno(+);
- está en el lado donde se espera NULL y está en el lado derecho
Sintaxis y ejemplos de Right Outer Join
seleccione empno,ename,dept.deptno,dname
desde emp
derecha OUTER JOIN dept
en emp.deptno=dept.deptno;
- sintaxis de signos
select empno,ename,dept.deptno,dname
from emp ,dept where emp.deptno(+)=dept.deptno;
- está en el lado donde se espera NULL y está en el lado izquierdo
Sintaxis y ejemplos de Full Outer Join
select empno,ename,dept.deptno,dname
from emp
full OUTER JOIN dept
on emp.deptno=dept.deptno;
Artículos relacionados
Uniones de Oracle
Unión de bucle anidado en Oracle
Varios métodos de unión en Oracle
Unión hash en Oracle