Unir mesas con JOIN

Página 16

MySQL es uno de los sistemas de administración de bases de datos más populares del mundo y uno de los conceptos más importantes que se deben comprender al trabajar con él es cómo unir tablas usando el comando JOIN. Este es un comando SQL que se utiliza para combinar filas de dos o más tablas, en función de una columna relacionada entre ellas.

Hay varios tipos de UNIONES disponibles en MySQL: UNIÓN INTERNA, UNIÓN IZQUIERDA, UNIÓN DERECHA y UNIÓN COMPLETA. Cada uno de ellos tiene un propósito específico y se utiliza en diferentes escenarios. Exploremos cada uno de ellos en detalle.

UNIÓN INTERNA

La UNIÓN INTERNA es el tipo más común de UNIÓN. Devuelve filas cuando hay una coincidencia en ambas tablas. Si no hay ninguna coincidencia, no se devuelve la fila.

Por ejemplo, si tenemos dos tablas, 'Clientes' y 'Pedidos', y queremos encontrar todos los clientes que han realizado un pedido, podríamos usar INNER JOIN para unir las dos tablas según el ID del cliente. La sintaxis sería algo como esto:

SELECCIONAR Clientes.Nombre, Pedidos.Producto
DE Clientes
Órdenes de UNIÓN INTERNA
ON Clientes.ID = Pedidos.ID_Cliente;

Este comando devolvería una tabla de nombres de clientes y los productos que pidieron. Si un cliente no realizó un pedido, no aparecerá en la tabla resultante.

UNIRSE A LA IZQUIERDA

LEFT JOIN devuelve todas las filas de la tabla de la izquierda y las filas correspondientes de la tabla de la derecha. Si no hay ninguna coincidencia, el resultado es NULL en el lado derecho.

Usando el mismo ejemplo, si quisiéramos encontrar todos los clientes, independientemente de si realizaron un pedido o no, podríamos usar LEFT JOIN. La sintaxis sería algo como esto:

SELECCIONAR Clientes.Nombre, Pedidos.Producto
DE Clientes
UNIRSE A LA IZQUIERDA Órdenes
ON Clientes.ID = Pedidos.ID_Cliente;

Este comando devolvería una tabla con los nombres de todos los clientes. Si un cliente realizaba un pedido, se enumeraría el producto que solicitó. Si no realizaron un pedido, habría un NULL en la columna del producto.

UNIRSE DERECHO

La UNIÓN DERECHA es lo opuesto a la UNIÓN IZQUIERDA. Devuelve todas las filas de la tabla de la derecha y las filas correspondientes de la tabla de la izquierda. Si no hay ninguna coincidencia, el resultado es NULL a la izquierda.

Usando el mismo ejemplo, si quisiéramos encontrar todos los pedidos, independientemente de si fueron realizados por un cliente o no, podríamos usar RIGHT JOIN. La sintaxis sería algo como esto:

SELECCIONAR Clientes.Nombre, Pedidos.Producto
DE Clientes
UNIRSE DERECHO Órdenes
ON Clientes.ID = Pedidos.ID_Cliente;

Este comando devolvería una tabla con todos los productos que se ordenaron. Si un cliente realizó un pedido, aparecerá el nombre del cliente. Si el pedido no fue realizado por un cliente, habría un NULL en la columna del nombre del cliente.

UNICIÓN COMPLETA

FULL JOIN devuelve filas cuando hay una coincidencia en una de las tablas. Entonces, si hay una fila en la primera tabla que no tiene una fila coincidente en la segunda tabla, o una fila en la segunda tabla que no tiene una fila coincidente en la primera tabla, esa fila aparecerá en la lista.

Desafortunadamente, MySQL no admite FULL JOIN directamente, pero puedes lograr el mismo resultado usando una combinación de LEFT JOIN y UNION.

SELECCIONAR Clientes.Nombre, Pedidos.Producto
DE Clientes
UNIRSE A LA IZQUIERDA Órdenes
ON Clientes.ID = Pedidos.ID_Cliente
UNIÓN
SELECCIONAR Clientes.Nombre, Pedidos.Producto
DE Clientes
UNIRSE DERECHO Órdenes
ON Clientes.ID = Pedidos.ID_Cliente;

Este comando devolvería una tabla de todos los clientes y todos los pedidos. Si un cliente no realizó un pedido, habría un NULL en la columna del producto. Si un cliente no realizó un pedido, habría un NULL en la columna del nombre del cliente.

En resumen, el comando JOIN es una poderosa herramienta en MySQL que le permite unir dos o más tablas en función de una columna relacionada entre ellas. Comprender cómo utilizar los diferentes tipos de JOIN puede ayudarle a extraer eficientemente información valiosa de sus datos.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es la diferencia entre INNER JOIN y LEFT JOIN en MySQL?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente página del libro electrónico gratuito:

17Subconsultas en MySQL

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.