Resumen: en este tutorial, aprenderá a utilizar el RIGHT OUTER JOIN
en Oracle para unir dos o más tablas.
Resumen de RIGHT OUTER JOIN en Oracle
Supongamos que tenemos dos tablas T1
y T2
, la siguiente sentencia muestra cómo unir estas dos tablas utilizando la cláusula RIGHT OUTER JOIN
en Oracle:
En esta sentencia, T1
y T2
son la tabla izquierda y derecha respectivamente.
La palabra clave OUTER
es opcional por lo tanto el RIGHT OUTER JOIN
y el RIGHT JOIN
son lo mismo.
Así es como funciona el RIGHT OUTER JOIN
.
Cada fila de la tabla T1
se compara con las filas de la tabla T2
:
- Si un par de filas satisface el predicado de unión, los valores de las columnas de ambas filas se combinan para hacer una fila de resultado que se incluye en el conjunto de resultados.
- En caso de que una fila de la tabla
T2
no coincida con ninguna fila de la tablaT1
, los valores de las columnas de la fila de la tablaT2
se combinan con un valor NULL para cada columna de la fila de la tablaT1
para hacer la fila de resultado que luego se incluye también en el conjunto de resultados.
En otras palabras, un RIGHT OUTER JOIN devuelve todas las filas de la tabla de la derecha y también las filas coincidentes de la tabla de la izquierda.
Ejemplos de RIGHT OUTER JOIN de Oracle
Utilizaremos las tablas orders
y employees
de la base de datos de ejemplo para la demostración:
En este diagrama, un vendedor está a cargo de uno o más pedidos de venta. Sin embargo, algunos pedidos de venta pueden no estar a cargo de ningún vendedor.
El siguiente ejemplo recupera todos los vendedores y sus pedidos de venta si los hay:
El resultado incluye todos los empleados cuyo cargo es Sales Representative
y sus pedidos.
Si un vendedor no está a cargo de ningún pedido de venta como Alice Wells
, Charlotte Webb
, las columnas order_id
y status
se rellenan con valores NULL.
Oracle RIGHT OUTER JOIN con cláusula USING
De forma similar a otras uniones como INNER JOIN
, LEFT JOIN
, se puede utilizar la cláusula USING
para especificar qué columna debe comprobar la igualdad al unir tablas.
A continuación se ilustra la sintaxis de la cláusula RIGHT OUTER JOIN
con la cláusula USING
:
En esta consulta, las columnas enumeradas en la cláusula USING
deben presentarse en ambas tablas T1
y T2
.
La siguiente sentencia es equivalente a la anterior:
La siguiente sentencia demuestra cómo utilizar el RIGHT OUTER JOIN
con la cláusula USING
:
En este ejemplo, todos los clientes se incluyen en el conjunto de resultados. Si un cliente no tiene un pedido de venta, las columnas order_id
y status
se rellenan con valores NULL.
Oracle RIGHT JOIN: condición en la cláusula ON vs. WHERE
La siguiente sentencia obtiene los datos del empleado y del pedido del vendedor id 57.
La siguiente sentencia coloca la condición en la cláusula WHERE
en lugar de la cláusula ON
:
La consulta devuelve todos los empleados pero sólo el empleado id 57 tiene los datos del pedido relacionado.
Nota que con respecto a la INNER JOIN
, la condición se coloca en la cláusula ON
tiene el mismo efecto que se coloca en la cláusula WHERE
.
En este tutorial, ha aprendido a utilizar el RIGHT OUTER JOIN
en Oracle para consultar datos de múltiples tablas.
- ¿Ha sido útil este tutorial?
- SíNo