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.
- Unir internamente
- Izquierda unirse
- Únete a la derecha
- Unión externa completa
- Auto-unirse
- 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 | Nombre | Solicitar 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.
- Los 10 mejores comandos de MySQL
- Introducción a los operadores MySQL
- MySQL vs SQLite | Comparación de los 14 principales
- Las 23 funciones principales de MySQL String
- Explique el comando Insertar en MySQL con ejemplos
- Las 6 principales diferencias entre la clave primaria y la clave externa