Maison > base de données > tutoriel mysql > Pourquoi ma LEFT OUTER JOIN renvoie-t-elle plus de lignes que le tableau de gauche ?

Pourquoi ma LEFT OUTER JOIN renvoie-t-elle plus de lignes que le tableau de gauche ?

Barbara Streisand
Libérer: 2025-01-25 01:31:09
original
812 Les gens l'ont consulté

Why Does My LEFT OUTER JOIN Return More Rows Than Are in the Left Table?

Comprendre le nombre de lignes inattendues dans les LEFT OUTER JOINs

Bien que les LEFT OUTER JOIN soient conçues pour renvoyer toutes les lignes de la table de gauche, l'ensemble de résultats peut parfois être plus grand que prévu. Cela se produit en raison d’une caractéristique clé du fonctionnement des LEFT OUTER JOIN.

Contrairement à l'hypothèse simple selon laquelle les lignes sans correspondance de la table de gauche auront simplement des valeurs NULL dans les colonnes de la table de droite, un LEFT OUTER JOIN inclut en fait toutes les lignes correspondantes des les deux tables. Par conséquent, si une seule ligne du tableau de gauche correspond à plusieurs lignes du tableau de droite, le résultat contiendra plusieurs copies de cette ligne du tableau de gauche. Ceci est similaire au comportement d'un INNER JOIN, ce qui entraîne un nombre de lignes plus élevé que prévu.

Considérez cette requête SQL :

<code class="language-sql">SELECT     
    SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID
FROM
    SUSP.Susp_Visits 
LEFT OUTER JOIN
    DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum</code>
Copier après la connexion

Notez que seules les colonnes de SUSP.Susp_Visits sont sélectionnées. Cependant, en raison du potentiel de correspondances multiples dans DATA.Dim_Member, chaque ligne de SUSP.Susp_Visits peut apparaître plusieurs fois dans la sortie. Cela explique l'augmentation du nombre de lignes.

Si vous n'avez besoin que des données de la table de gauche et que vous souhaitez éviter les lignes en double, un LEFT OUTER JOIN n'est pas nécessaire. Une simple instruction SELECT du tableau de gauche fournira les données requises sans le nombre de lignes gonflé. Comprendre ce comportement est crucial pour utiliser efficacement les LEFT OUTER JOIN et obtenir des résultats précis.

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