Maison > base de données > tutoriel mysql > Quelle est la différence entre JOIN et LEFT JOIN dans MySQL ?

Quelle est la différence entre JOIN et LEFT JOIN dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-11-25 16:13:11
original
731 Les gens l'ont consulté

What is the difference between JOIN and LEFT JOIN in MySQL?

Comprendre la différence entre JOIN et LEFT JOIN dans MySQL

En SQL, la jointure de tables nous permet de combiner les données de plusieurs tables en fonction de paramètres spécifiques critères. Deux types courants de jointures sont JOIN et LEFT JOIN.

JOIN vs LEFT JOIN

JOIN renvoie uniquement les lignes qui correspondent à la condition de jointure, créant essentiellement un sous-ensemble d'enregistrements. qui répondent aux critères spécifiés. D'un autre côté, LEFT JOIN récupère toutes les lignes de la table de gauche et uniquement les lignes qui ont une correspondance dans la table de droite. Les lignes sans correspondance dans le tableau de droite sont renvoyées avec des valeurs NULL.

Type de jointure par défaut dans MySQL

Contrairement à l'hypothèse de l'utilisateur, le type de jointure par défaut dans MySQL est INNER JOIN, ce qui signifie qu'il inclut uniquement les lignes qui satisfont à la condition de jointure. Si vous souhaitez utiliser un LEFT JOIN, vous devez le spécifier explicitement dans votre requête.

Exemple

Considérez l'exemple suivant fourni par l'utilisateur :

SELECT
            `DM_Server`.`Jobs`.*,
            `DM_Server`.servers.Description AS server,
            digital_inventory.params,
            products.products_id,
            products.products_pdfupload,
            customers.customers_firstname,
            customers.customers_lastname
        FROM `DM_Server`.`Jobs`
        INNER JOIN `DM_Server`.servers ON servers.ServerID = Jobs.Jobs_ServerID
        JOIN `cpod_live`.`digital_inventory` ON digital_inventory.jobname = Jobs.Jobs_Name
        JOIN `cpod_live`.`products` ON products.products_pdfupload = CONCAT(digital_inventory.jobname, ".pdf")
        JOIN `cpod_live`.`customers` ON customers.customers_id = products.cID
        ORDER BY `DM_Server`.`Jobs`.Jobs_StartTime DESC LIMIT 50
Copier après la connexion

Par défaut, cette requête utilise les INNER JOIN, qui renvoient uniquement les tâches ayant des entrées correspondantes dans les quatre tables jointes. Pour le convertir en LEFT JOIN, vous devez modifier les mots-clés JOIN en LEFT JOIN, comme suit :

SELECT
            `DM_Server`.`Jobs`.*,
            `DM_Server`.servers.Description AS server,
            digital_inventory.params,
            products.products_id,
            products.products_pdfupload,
            customers.customers_firstname,
            customers.customers_lastname
        FROM `DM_Server`.`Jobs`
        LEFT JOIN `DM_Server`.servers ON servers.ServerID = Jobs.Jobs_ServerID
        LEFT JOIN `cpod_live`.`digital_inventory` ON digital_inventory.jobname = Jobs.Jobs_Name
        LEFT JOIN `cpod_live`.`products` ON products.products_pdfupload = CONCAT(digital_inventory.jobname, ".pdf")
        LIMIT 50
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal