Tutoriales

Unir tres tablas en SQL

En las bases de datos relacionales, la tarea de recuperar datos de varias tablas es muy común. Dependiendo del resultado objetivo, esto implica unir varias tablas en una sola unidad y obtener los datos resultantes.

Cuando se trata de uniones, la mayoría de nosotros lidiamos principalmente con la limitación de dos tablas, etc. Sin embargo, a menudo es necesario unir tres tablas para obtener información y un diseño de datos más significativos. Por ejemplo, digamos que desea recuperar una lista de películas, el inventario de alquiler correspondiente y los detalles reales del alquiler. Cada unidad (como películas, inventario y detalles de alquiler) se encuentra en una tabla separada.

En este tutorial, lo guiaremos a través de las diversas uniones y técnicas que puede utilizar para unir tres tablas en SQL.

Requerir:

Para fines de demostración, utilizaremos MySQL versión 80 y la base de datos de muestra Sakila. A continuación, puede descargar y configurar la base de datos Sakila en su servidor MySQL. No dude en utilizar cualquier otro conjunto de datos que considere apropiado.

Tipos de unión en SQL

Antes de analizar las aplicaciones de las uniones, analicemos los distintos tipos de uniones disponibles en las bases de datos SQL.

unir internamente

El primer tipo de unión es INNER JOIN. Este tipo de combinación devuelve sólo filas de ambas tablas que contienen valores coincidentes. Este es un tipo de unión muy común y es el más sencillo cuando se unen dos tablas.

LEER  Mi Raspberry Pi se convirtió en un perro robot y me encanta

La gramática es la siguiente:

seleccionar columna

De la tabla 1

Mesa de unión interior 2 existir Tabla 1. Nombre de columna = Tabla 2. Nombre de columna;

unirse a la izquierda

Para LEFT JOIN, devuelve todas las filas de la tabla de la izquierda y las filas coincidentes de la tabla de la derecha. Si no hay ningún valor coincidente en la tabla de la derecha, el cable agregará un valor NULL en su lugar.

La gramática es la siguiente:

seleccionar columna

De la tabla 1

Tabla de unión izquierda 2 existir Tabla 1. Nombre de columna = Tabla 2. Nombre de columna;

Conexión correcta

Como puedes adivinar, UNIRSE DERECHA es lo opuesto a UNIRSE IZQUIERDA. Este tipo de combinación devuelve todas las filas de la tabla derecha y solo las filas coincidentes de la tabla izquierda. Si no hay ninguna fila coincidente en la tabla de la izquierda, la combinación le agregará un valor NULL.

La siguiente es la sintaxis de RIGHT JOIN:

seleccionar columna

De la tabla 1

Tabla de unión derecha 2 existir Tabla 1. Nombre de columna = Tabla 2. Nombre de columna;

unión externa completa

El siguiente tipo de unión que encontrará en una base de datos SQL es la UNIÓN EXTERNA COMPLETA. Este tipo de combinación devolverá todas las filas cuando haya elementos coincidentes en la tabla derecha o izquierda. Si no hay ningún valor coincidente para ninguno de los dos, se devuelve NULL para la columna no coincidente de la tabla.

A continuación se demuestra la sintaxis de FULL OUTER JOIN:

seleccionar columna

De la tabla 1

Tabla de unión exterior completa 2 existir Tabla 1. Nombre de columna = Tabla 2. Nombre de columna;

Tenga en cuenta que no todos los motores de bases de datos admiten UNIONES EXTERNAS COMPLETAS. Para lograr esto, es posible que necesite utilizar otros tipos de combinaciones o subconsultas.

ejemplo:

Exploremos algunos ejemplos de cómo unir tres tablas en SQL usando estos tipos de uniones.

Ejemplo 1: uso de INNER JOIN

Empezamos con INNER JOIN. Digamos que queremos recuperar listados de películas, inventario de alquiler y detalles de alquiler correspondientes.

Podemos usar múltiples UNIONES INTERNAS en tablas relacionadas como se muestra en el siguiente ejemplo:

elegir

título de la película,

Inventario.Inventario_id,

alquiler.alquiler_fecha

de

Película

Inventario de unión interna existir

movie.movie_id = inventario.movie_id

Conexión interna en alquiler existir

Inventory.inventory_id = arrendamiento.inventory_id;

En la consulta de ejemplo dada, primero unimos las tablas de películas y de inventario según la columna «film_id». Luego tomamos el conjunto de resultados y lo unimos a la tabla de alquiler según el campo «inventory_id».

Esto asegura que unimos las tres tablas usando una INNER JOIN básica. El conjunto de resultados es el siguiente:

Ejemplo 2: uso de INNER JOIN y LEFT JOIN

Supongamos que ahora necesitamos una lista de películas, una lista de inventario de alquiler (si está disponible) y los detalles de alquiler asociados.

También queremos asegurarnos de que incluso si una película no tiene inventario de alquiler, la incluiremos en los resultados. Aquí es donde entran en juego INNER JOIN y LEFT JOIN.

Considere el siguiente ejemplo:

elegir

título de la película,

Inventario.Inventario_id,

alquiler.alquiler_fecha

de

Película

Inventario de unión interna existir

movie.movie_id = inventario.movie_id

Alquiler zuoliano existir

Inventory.inventory_id = arrendamiento.inventory_id;

En este ejemplo, usamos INNER JOIN para unir las películas y las tablas de inventario para asegurarnos de obtener títulos con inventario disponible. Luego usamos LEFT JOIN para unirnos a la tabla de alquiler y obtener los detalles del alquiler (si los hay) y NULL para obtener los libros que no tienen un historial de alquiler.

El conjunto de resultados es el siguiente:

en conclusión

En este tutorial, aprendimos sobre los distintos tipos de JOINS en SQL, cómo funcionan y cómo usarlos para combinar tres tablas.

LEER  Estructura Typedef en C++

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba