Databases

T01-009-02 Composiciones internas con JOIN

Enunciado

Por motivos de eficiencia y de separación de las condiciones de asociación respecto a las condiciones de selección de registros, existe una sintaxis más extendida para realizar composiciones internas que la de partir de un producto cartesiano.

SELECT tabla1.columna1, tabla1.columna2, …, tabla2.columna1, tabla2.columna2, …
FROM tabla1
    [NATURAL JOIN tabla2] |
    [JOIN tabla2 USING (columna)] |
    [JOIN tabla2 ON (tabla1.columna=tabla2.columna)] |

    [CROSS JOIN tabla2];

En los siguientes ejercicios iremos viendo cada una de los tipos de composición, comenzando por

NATURAL JOIN

Detecta automáticamente las claves de unión, basándose en el nombre de la columna que coincide en ambas tablas. Por supuesto, se requerirá que las columnas de unión tengan el mismo nombre en cada tabla.

Ejemplo:

El atributo que relaciona countries con regions es, en ambas tablas, REGION_ID, por eso, en la siguiente sentencia con NATURAL JOIN, no es necesario indicarla.

Muestra los países ordenados según el identificador de la región en la que se encuentra

SELECT REGION_ID, REGION_NAME, COUNTRY_NAME
FROM HR.regions NATURAL JOIN HR.countries
ORDER BY REGION_NAME

REGION_ID REGION_NAME COUNTRY_NAME
2 Americas Argentina
2 Americas ...
... ... ...
3 Asia Singapore
3 Asia ...
... ... ...
1 Europe Germany
1 Europe ...
... ... ...
4 Middle East and Africa Israel
4 Middle East and Africa ...
... ... ...

Ejercicio

Utilizando NATURAL JOIN, muestra las direcciones (locations) que están en el país cuyo nombre es 'United Kingdom'.

Ordena el resultado alfabéticamente por la ciudad.

Tipo

SELECT

Solución


												
SELECT STREET_ADDRESS, CITY, COUNTRY_NAME FROM HR.locations NATURAL JOIN HR.countries WHERE COUNTRY_NAME = 'United Kingdom' ORDER BY CITY

Prueba


											

Librerías (Onfly databases)