J'ai une jointure externe gauche très basique pour renvoyer tous les résultats de la table de gauche et quelques informations supplémentaires d'une table beaucoup plus grande. La table de gauche contient 4935 enregistrements. Pourtant, lorsque JE LEFT OUTER JOIN il à une table supplémentaire, le nombre d'enregistrements est considérablement plus grand.
Autant que je sache, c'est un évangile absolu qu'une JOINTURE EXTÉRIEURE GAUCHE renverra tous les enregistrements de la table de gauche avec les enregistrements correspondants de la table de droite et des valeurs nulles pour toutes les lignes qui ne peuvent pas être mises en correspondance, en tant que tel, je crois comprendre qu'il devrait impossible de renvoyer plus de lignes qu'il n'en existe dans le tableau de gauche, mais ça se passe quand même!
La requête SQL suit:
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
Peut-être ai-je fait une erreur dans la syntaxe ou ma compréhension de LEFT OUTER JOIN est incomplète, j'espère que quelqu'un pourra expliquer comment cela pourrait se produire?
Postscript
Merci pour les bonnes réponses, ma compréhension des JOINTES EXTÉRIEURES GAUCHE est maintenant bien meilleure. Quelqu'un pourrait-il cependant suggérer un moyen de modifier cette requête afin que je ne reçoive que le nombre d'enregistrements renvoyés dans le tableau de gauche?
Cette requête sert uniquement à générer un rapport et les correspondances en double ne font que confondre les choses.
/ Postscript