Types de jointure de bases de données

Les jointures sont des fonctions élémentaires de bases de données qui vous permettent de fusionner le contenu de deux tables et/ou bases de données différentes dans un même affichage d'après un ou des champs qu'elles ont en commun (autrement dit, la condition de jointure). Pour en savoir plus, reportez-vous à la rubrique À propos des jointures de tables et bases de données.

Lorsque vous utilisez des données de plusieurs tables et/ou bases de données dans votre document, celles-ci doivent être jointes à l’aide de l’un des types de jointure de bases de données.

Vous trouverez ci-dessous deux modèles de tables auxquelles il sera fait référence dans les exemples des différents types de jointure pris en charge par BarTender. La Table A répertorie les employés et leur identifiant de service et la Table B répertorie les noms de service et l’identifiant associé à chacun d’entre eux. Le champ commun aux deux tables, qui est utilisé comme condition de jointure est IDservice.

Table A :

Prénom

IDservice

Joe

31

Jane

33

Mark

33

Mary

34

Dan

34

Donna

NULL

Table B :

IDservice

NomService

31

Commercial

33

Technique

34

Administration

35

Marketing

BarTender prend en charge les types de jointure suivants :

La jointure interne est la seule prise en charge lorsque vous utilisez des données de plusieurs bases de données. De plus, la jointure externe complète n'est pas prise en charge pour les bases de données Excel, Access et MySQL.

ClosedJointure interne

La jointure interne est l’un des contrôles de jointure les plus courants. Elle est souvent proposée en tant que valeur par défaut. Dans une jointure interne, les nouveaux résultats sont créés en retournant et en combinant toutes les lignes des tables spécifiées qui comportent des valeurs qui se correspondent dans les champs de jointure que vous avez indiqués. Lorsqu'une ligne de la Table A n'a pas de correspondance dans la Table B, et inversement, celle-ci n'est pas incluse dans les résultats. Dans notre exemple, une jointure interne utilisant IDservice comme condition de jointure donnerait le résultat suivant :

Prénom

IDservice

NomService

Joe

31

Commercial

Jane

33

Technique

Mark

33

Technique

Mary

34

Administration

Dan

34

Administration

Comme vous pouvez observer, comme l'identifiant de service de Donna porte la valeur NULL dans la Table A, elle n'apparaît pas dans la table de jointure interne finale. Si nous avions affecté à Donna un identifiant de service non répertorié dans la table B, sa ligne aurait aussi été omise, aucune ligne correspondante ne pouvant lui être associée.

Les valeurs NULL sont traitées différemment des autres valeurs et ne peuvent pas être comparées à une valeur 0 (zéro) ni même à une autre valeur NULL. Pour cette raison, une jointure interne ne peut pas retourner de ligne contenant une valeur NULL dans un champ qui est utilisé dans la condition de jointure, car il n'y a pas de valeur de champ équivalente.

ClosedJointure externe gauche

La jointure externe gauche est une jointure interne qui en plus retourne toutes les lignes de la table de gauche (Table A), même s'il n'y a pas de ligne correspondante dans la table de droite (Table B). Les lignes de la table de gauche n'ayant pas de ligne correspondante dans la table de droite apparaissent dans le résultat de jointure avec les valeurs NULL, montrant l'absence de correspondance dans la table de droite. Dans ce cas, le résultat répertorie tous les employés, même s'ils ne sont pas affectés à un service, comme pour Donna dans la table ci-dessous.

Prénom

IDservice

NomService

Joe

31

Commercial

Jane

33

Technique

Mark

33

Technique

Mary

34

Administration

Dan

34

Administration

Donna

NULL

NULL

ClosedJointure externe droite

La jointure externe droite se comporte exactement comme une jointure externe gauche, mais dans l'autre sens, de sorte que toutes les entrées de la table de droite (Table B) sont en plus retournées dans le résultat, même s'il n'y a pas de ligne correspondante dans la table de gauche (Table A). Dans ce cas, le résultat répertorie tous les services, même s'il n'y a pas d'employé associé, comme pour le service de Marketing dans la table ci-dessous.

Prénom

IDservice

NomService

Joe

31

Commercial

Jane

33

Technique

Mark

33

Technique

Mary

34

Administration

Dan

34

Administration

NULL

35

Marketing

ClosedJointure externe complète

La jointure externe complète retourne un résultat qui répertorie toutes les lignes des tables de gauche et de droite, même si une ligne n'a pas de correspondance dans l'autre table. Lorsqu'une ligne n'a pas de correspondance dans l'autre table, NULL est attribué à la valeur manquante. Ce résultat inclut aussi bien le service de Marketing (même s'il n'a pas d'employés) que l'employée Donna (bien qu'elle n'appartienne pas à un service).

Prénom

IDservice

NomService

Joe

31

Commercial

Jane

33

Technique

Mark

33

Technique

Mary

34

Administration

Dan

34

Administration

Donna

NULL

NULL

NULL

35

Marketing

Rubriques connexes