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

Índice

    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

    Subir