Un tutorial sobre MySQL JOIN con ejemplos

El artículo presenta un tutorial detallado sobre MySQL JOIN. En él aprenderá sobre los diferentes tipos de JOINS soportados en MySQL, su sintaxis y cómo usarlos.
Introducción a MySQL ÚNETE
Diferentes tipos de JOIN en MySQL
1. Elemento MySQL INNER JOIN
2. UNIÓN EXTERNA MySQL
2.1 artículo MySQL ÚNETE A LA IZQUIERDA
2.2 MySQL ÚNETE A LA DERECHA
3. Especifique MySQL CROSS JOIN
MySQL ÚNETE Guía
Conclusión
Introducción a MySQL ÚNETE
Las bases de datos MySQL suelen almacenar grandes cantidades de datos. Para analizar estos datos de manera efectiva, los analistas y administradores de bases de datos necesitan constantemente extraer registros de dos o más tablas en función de ciertas condiciones. Aquí acude en ayuda de JOIN.
JOINS se utilizan para recuperar datos de varias tablas en una sola consulta. Para que JOIN funcione, las tablas deben estar vinculadas entre sí por un valor de clave común.
Las declaraciones JOIN se utilizan en las declaraciones SELECT, UPDATE y DELETE.
Diferentes tipos de JOIN en MySQL
El tipo MySQL JOIN determina cómo se vinculan las dos tablas en la consulta. MySQL admite los siguientes tipos de oraciones JOIN: ACCESORIOS INTERNOS, ADHESIÓN EXTERNAy UNIÓN CRUZADA. OUTER JOIN también se puede dividir en ASOCIACIONES DE IZQUIERDA y LAS ASOCIACIONES ADECUADAS.
Para demostrar mejor cómo funciona JOIN, crearemos dos tablas.
CREATE TABLE `users` (
`auid` int(10) UNSIGNED NOT NULL,
`username` varchar(100) NOT NULL,
`password` varchar(150) NOT NULL,
`createdate` datetime NOT NULL,
`isActive` tinyint(1) NOT NULL
);
CREATE TABLE `userprofile` (
`apid` int(10) UNSIGNED NOT NULL,
`auid` int(10) UNSIGNED NOT NULL,
`firstname` varchar(50) NOT NULL,
`lastname` varchar(50) NOT NULL,
`email` varchar(100) NOT NULL,
`phone` varchar(45) NOT NULL
);
Y llenarlos con datos.
Insert into users
(auid, username,password, createdate, isActive)
values
(1,'admin','pswrd123', curdate(), 1);
Insert into userprofile
(apid, auid, firstname, lastname, email, phone)
values
(1,1,'Jack', 'Wolf', '[email protected]','600075764216');
Insert into users
(auid,username,password, createdate, isActive)
values
(2, 'admin1','pass506', curdate(), 1);
Insert into userprofile
(apid, auid, firstname, lastname, email, phone)
values
(2, 3, 'Tom', 'Collins', '[email protected]','878511311054');
Insert into users
(auid, username,password, createdate, isActive)
values
(4,'fox12','[email protected]', curdate(), 1);
Insert into userprofile
(apid, auid, firstname, lastname, email, phone)
values
(4,5,'Bill', 'Fonskin', '[email protected]','450985764216');
Insert into users
(auid,username,password, createdate, isActive)
values
(6, 'lexus1267','98hnfRT6', curdate(), 1);
Insert into userprofile
(apid, auid, firstname, lastname, email, phone)
values
(7, 7, 'Ivan', 'Levchenko', '[email protected]','878511311054');
1. Elemento MySQL INNER JOIN
CONEXIONES INTERNAS se utilizan para obtener solo registros generales de coincidencias. El elemento INNER JOIN le permite obtener solo los registros de las tablas A y B que cumplen la condición de conexión. Este es el tipo de JOIN más utilizado.
Para una mejor comprensión de las asociaciones internas, mire el gráfico de Viena a continuación.
Aquí está la sintaxis para MySQL INNER JOIN:
SELECT columns
FROM tableA
INNER JOIN tableB
ON tableA.column = tableB.column;
2. UNIÓN EXTERNA MySQL
A diferencia de INNER JOIN, OUTER JOIN devuelve no solo cadenas relevantes sino también inconsistencias. Si hay filas que no coinciden en la tabla fusionada, mostrarán valores NULL.
En MySQL, hay dos tipos de OUTER JOIN: MySQL LEFT JOIN y MySQL RIGHT JOIN. Echemos un vistazo más de cerca a cada uno de ellos.
2.1 artículo MySQL ÚNETE A LA IZQUIERDA
LEFT JOIN le permite obtener todos los registros de la tabla A junto con los registros de la tabla B para los que se cumple la condición de conexión. Para los registros de la Tabla A que no cumplen la condición, se muestran valores NULL.
Para comprender mejor LEFT JOIN, estudie el cuadro de Viena a continuación.
Aquí está la sintaxis para MySQL LEFT JOIN:
SELECT columns
FROM tableA
LEFT [OUTER] JOIN tableB
ON tableA.column = tableB.column;
2.2 MySQL ÚNETE A LA DERECHA
En consecuencia, RIGHT JOIN le permite obtener todos los registros de la Tabla B, junto con los registros de la Tabla A para los que se cumple la condición de conexión. Para los registros de la Tabla B que no cumplen la condición, se muestran valores NULL.
A continuación se muestra un gráfico de Venn para tener una mejor idea de las asociaciones CORRECTAS.
Aquí está la sintaxis para MySQL RIGHT JOIN:
SELECT columns
FROM tableA
RIGHT [OUTER] JOIN tableB
ON tableA.column = tableB.column;
3. Especifique MySQL CROSS JOIN
MySQL CROSS JOIN, también conocido como compuesto cartesiano, recupera todas las combinaciones de filas de cada tabla. En este tipo JOIN, el conjunto de resultados se devuelve al multiplicar cada fila de la tabla A por todas las filas de la tabla B, a menos que se ingrese una condición adicional.
Para comprender mejor las conexiones cruzadas, estudie el siguiente diagrama de Viena.
Si es posible que necesite este tipo de ÚNETE? Imagina tener que buscar todas las combinaciones de producto y color. En este caso, la fusión cruzada sería muy beneficiosa.
Aquí está la sintaxis para MySQL CROSS JOIN:
SELECT columns
FROM tableA
CROSS JOIN tableB;
MySQL ÚNETE Guía
Los JOIN en MySQL le permiten usar una sola consulta JOIN en lugar de algunas consultas simples. De esta forma, puede lograr un mejor rendimiento, reducir la carga del servidor y reducir la cantidad de transferencia de datos entre MySQL y su aplicación.
A diferencia de SQL Server, MySQL no admite FULL OUTER JOIN como un tipo de JOIN independiente. Sin embargo, para obtener resultados idénticos a la DIVISIÓN EXTERNA COMPLETA, puede combinar la UNIÓN EXTERNA IZQUIERDA y la UNIÓN EXTERNA DERECHA.
SELECT * FROM tableA
LEFT JOIN tableB ON tableA.id = tableB.id
UNION
SELECT * FROM tableA
RIGHT JOIN tableB ON tableA.id = tableB.id
Usando MySQL JOIN, también puede fusionar más de dos tablas.
SELECT *
FROM tableA
LEFT JOIN tableB
ON tableA.id = tableB.id
LEFT JOIN tableC
ON tableC.id = tableA.id;
Conclusión
Es muy importante para cualquier analista y DBA entender bien JOIN y usarlos libremente en su trabajo diario. Aquí es donde dbForge Studio para MySQL se vuelve indispensable. Su finalización avanzada de código funciona perfectamente incluso para elementos JOIN complejos. No necesita memorizar cientos de nombres de columnas o alias, dbForge Studio para MySQL le indicará el elemento JOIN completo. Su rica funcionalidad simplifica enormemente la creación de consultas complejas y la gestión de condiciones JOIN.
Artículos de interés