Introducción a las uniones en MySQL

MySQL Joins juega un papel importante cuando tenemos que unir dos tablas en base a uno o más valores comunes compartidos por dos tablas.

Ejemplo : Consideremos que tenemos dos tablas, una es la tabla de empleados que consiste en employee_id, phn_no, salario y departamento. Otra tabla es la tabla de direcciones que consta de employee_id y address. Si necesitamos averiguar employee_id, departamento y dirección, entonces tenemos que unir ambas tablas que comparten el campo común como employee_id.

Consulta :

SELECT e1.employee_id, e1.department, a1.address
FROM employee e1
INNER JOIN address a1
ON e1.employee_id = a1.employee_id;

Los 6 tipos principales de combinaciones en MySQL

Hay diferentes tipos de combinaciones en MySQL. Las uniones mencionadas a continuación se encuentran en el uso diario y son más útiles cuando se realizan muchas consultas en escenarios de casos reales.

  1. Unir internamente
  2. Izquierda unirse
  3. Únete a la derecha
  4. Unión externa completa
  5. Auto-unirse
  6. Cruz unirse

1. Unión interna

La unión interna devuelve el valor que coincide en ambas tablas.

Esta porción viene en la salida como se muestra en la imagen de arriba.

Ejemplo 1:

Emp_id Departamento Salario
1001 ESO 1000
1002 RSE 800
1003 ESO 2000

Esta es la tabla de empleados.

Emp_id Habla a
1002 Delhi
1003 Bangalore
1005 Bbsr

Aquí está la tabla de direcciones de esos empleados. La clave primaria del empleado de la tabla primaria emp_id se usa como la clave externa en la tabla de direcciones que es la tabla secundaria. Encontraremos el emp_id, el departamento y la dirección de un empleado utilizando la unión interna. Debido a que los estados de unión internos recuperan los registros que están presentes / comunes en ambas tablas.

Consulta:

SELECT emp.emp_id, emp.department, ads.address
FROM employee AS emp
INNER JOIN address AS ads
ON emp.emp_id = ads.emp_id;

Le damos un alias al nombre de la tabla solo para evitar más tiempo. En la consulta anterior, usamos el alias 'emp' para la tabla de empleados y 'ads' para la tabla de direcciones.

Salida:

Emp_id Departamento Habla a
1002 RSE Delhi
1003 ESO Bangalore

Como en el ejemplo anterior, emp_id 1002 y 1003 eran comunes entre ambas tablas, el comando de unión interna obtiene la salida solo para estos empleados.

Ejemplo # 2:

Aquí tenemos 2 tablas, tabla1 y tabla2. Ambas tablas consisten en un atributo cada una como la columna A y la columna B respectivamente.

Tabla 1

Columna A
1
1
2
3
4 4

Tabla 2

Columna B
1
2
2
3
3
5 5

Consulta:

If we apply inner join here,
SELECT * FROM Table1
INNER JOIN table2
ON columnA = columnB;

Salida:

Columna A Columna B
1 1
1 Nulo
2 2
Nulo 2
3 3
Nulo 3

2. Izquierda unirse

Esta unión devuelve todos los registros de la tabla izquierda y los registros coincidentes de la tabla derecha.

Como muestra el diagrama anterior, consta de todos los registros de la tabla A y los comunes de A y B.

Ejemplo 1:

Identificación del cliente Nombre Ciudad
1 Harish Chincheta
2 David Bangalore
3 Mahesh Bhubaneswar
4 4 Sam Calcuta

Tabla de clientes:

Solicitar ID Cantidad Identificación del cliente
19868 7575.00 4 4
19976 434654.00 2
99680 7457, 00 3

Tabla de pedidos:

Descubriremos customer_id, name y order_id asociados mediante el uso de combinación izquierda.

Consulta:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
LEFT JOIN order ord
ON cust.customer_id = ord.customer_id;

Salida:

Identificación del cliente NombreSolicitar ID
1 Harish nulo
2 David 19976
3 Mahesh 99680
4 4 Sam 19868

Como discutimos, esta unión izquierda obtuvo todos los ID de cliente de la tabla de clientes y los comunes entre ambas tablas. Para el customer_id '1' se mostrará como 'nulo' porque el '1' customer_id no está presente en la tabla de pedidos.

Ejemplo # 2:

Aquí tenemos 2 tablas, tabla1 y tabla2. Ambas tablas consisten en un atributo cada una como la columna A y la columna B respectivamente.

Tabla 1

Columna A
1
1
2
2
3

Tabla 2

Columna B
1
2
2
4 4
4 4
5 5
5 5

Consulta:

If we apply left join on above 2 tables,
SELECT * FROM table1
LEFT JOIN table2
ON columnA = columnB;

Columna A Columna B
1 1
1 Nulo
2 2
2 2
3 Nulo

3. Únete a la derecha

Esta unión devuelve todos los registros de la tabla derecha y los que coinciden de la tabla izquierda.

El diagrama anterior muestra que recupera todos los registros de la tabla B y el común que está presente en ambas tablas.

Ejemplo:

Identificación del cliente Nombre Ciudad
3 Mahesh Bhubaneswar
4 4 Sam Calcuta
5 5 RAM Mumbai

Tabla de clientes:

Solicitar ID Cantidad Identificación del cliente
19868 7575.00 4 4
19976 434654.00 2
99680 7457, 00 3

Tabla de pedidos:

Descubriremos customer_id, name y order_id asociados con él utilizando la combinación correcta.

Consulta:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
RIGHT JOIN order ord
ON cust.customer_id = ord.customer_id;

Salida:

Identificación del cliente Nombre Solicitar ID
2 nulo 19976
3 Mahesh 99680
4 4 Sam 19868

Como realizamos la unión correcta aquí, la consulta obtuvo todos los ID de clientes de la tabla de pedidos y los registros comunes que están en ambas tablas.

4. Unión externa completa

La combinación externa completa devuelve todos los registros de ambas tablas si hay un campo común compartido.

Ejemplo:

Identificación del cliente Nombre Ciudad
3 Mahesh Bhubaneswar
4 4 Sam Calcuta
5 5 RAM Mumbai

Tabla de clientes:

Solicitar ID Cantidad Identificación del cliente
19868 7575.00 4 4
19976 434654.00 2
99680 7457, 00 3

Tabla de pedidos:

Descubriremos customer_id, name y order_id asociados con él mediante una combinación externa completa.

Consulta:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
FULL OUTER JOIN order ord
ON cust.customer_id = ord.customer_id;

Salida:

Identificación del cliente Nombre Solicitar ID
2 nulo 19976
3 Mahesh 99680
4 4 Sam 19868
5 5 RAM nulo

Esta combinación externa completa obtuvo toda la identificación del cliente de la tabla de clientes, así como la tabla de pedidos.

5. Autounión

La unión automática es una unión regular y aquí la tabla se une solo.

Emp_id Nombre Telefono no Ciudad País
1001 R. Madhvan 9687687698 Bangalore India
1002 Gobu Sharma 9856453423 Pune India
1003 Debasish Das 8765456787 Mumbai India
1004 Amit Rout 4567788635 Pune India
1005 Sambit Kar 8789887873 Hyderabad India

Aquí está la tabla de empleados que consta de varios campos. Descubriremos a los empleados que viven en la misma ciudad.

Consulta :

SELECT e1.name AS Employee_name1, e2.name AS employee_name2, e1.City
FROM employee e1, employee e2
WHERE e1.name e2.name
AND e1.city = e2.city;

Salida :

Nombre_empleado1 Nombre_empleado2 e1.city
Gobu Sharma Amit Rout Pune
Amit Rout Gobu Sharma Pune

6. Cross Join

Esta unión produce un resultado donde el número de filas en la primera tabla se multiplica por las filas en la segunda tabla. Este tipo de resultado se denomina Producto cartesiano. Si usamos la cláusula WHERE con esta unión, entonces funcionará como una unión interna.

Ejemplo:

ID_prod. Nombre del producto Prod_unit ID de la compañía
1 Mezcla de Chex PC 12
2 Cheez-it PC 15
3 Galleta pcs dieciséis

Tabla de productos :

ID de la compañía Nombre de empresa City_city
15 Foodies Delhi
dieciséis Jack n Jill Chincheta
17 Natural Bangalore

Tabla de la empresa :

Aplicaremos una unión cruzada a estas tablas.

Consulta :

SELECT p.product_name, p.prod_unit, c.company_name
FROM product p
CROSS JOIN company c;

Salida :

p.product_name p.prod_unit c.company_name
Mezcla de Chex PC Foodies
Cheez-it PC Foodies
Galleta PC Foodies
Mezcla de Chex PC Jack n Jill
Cheez-it PC Jack n Jill
Galleta PC Jack n Jill
Mezcla de Chex PC Natural
Cheez-it PC Natural
Galleta PC Natural

Conclusión

La importancia de esas uniones es muy importante mientras se trabaja en escenarios en tiempo real, así como en algunas otras tecnologías también. En visualizaciones como Tableau y Power BI, las uniones juegan un papel vital. La práctica estructurada de esto es clave para incorporar estas nuevas técnicas y habilidades.

Artículo recomendado

Esta es una guía de las Uniones en MySQL. Aquí discutimos los 6 tipos principales de combinaciones en MySQL como Inner, Left, Right, Full, Self, Cross y sus Ejemplos junto con Consulta y Salida. También puede consultar nuestros artículos sugeridos para obtener más información.

  1. Los 10 mejores comandos de MySQL
  2. Introducción a los operadores MySQL
  3. MySQL vs SQLite | Comparación de los 14 principales
  4. Las 23 funciones principales de MySQL String
  5. Explique el comando Insertar en MySQL con ejemplos
  6. Las 6 principales diferencias entre la clave primaria y la clave externa