Ir al contenido principal

Natural Join

El Natural Join es implementado utilizando tres posibles clausulas JOIN que usan las siguientes palabras en diferentes combinaciones: NATURAL JOIN, USING, y ON.
Cuando las tablas Source y Target comparten nombres idénticos de columnas es posible desarrollar un Natural Join entre ellas sin especificar columnas. Esto es a veces referido como un pure natural join. En este escenario columnas con el mismo nombre en las tablas Source y Target son automáticamente asociadas. Filas con el mismo valor en las columnas en ambas tablas son recuperadas.
Las palabras NATURAL JOIN instruyen a Oracle a identificar columnas con nombres idénticos en las tablas Source y Target y posteriormente un Join implícitamente es desarrollado entre ellas.

-- NATURAL JOIN
-- LAS TABLAS SE UNEN MEDIANTE LA COLUMNA REGION_ID

DESCRIBE REGIONS;
DESCRIBE COUNTRIES;

SELECT country_id, country_name, region_name
FROM   regions
       NATURAL JOIN countries
ORDER BY region_name;

-- SE UNEN MEDIATE JOB_ID
SELECT employee_id, first_name, last_name, job_title
FROM   employees NATURAL JOIN jobs
ORDER BY employee_id;

Las palabras NATURAL JOIN instruyen a Oracle a identificar las columnas que comparten nombres idénticos entre las tablas Source y Target. A partir de entonces, un Join es implícitamente desarrollado.

SELECT *
FROM   regions NATURAL JOIN countries
WHERE  country_name = 'Canada';


La siguiente consulta, la columna REGION_ID es identificada como la única común en ambas tablas. La tabla REGIONS es la tabla SOURCE ya que aparece después de la clausula FROM. Y la tabla TARGET es COUNTRY. Para cada fila en la tabla región, se busca un valor coincidente de todas las filas en la tabla COUNTRY. 

Comentarios