Ajouter une jointure (Outils de gestion des données)
Résumé
Permet de joindre une couche à une autre couche ou table selon un champ commun. Les couches d’entités, les vues tabulaires et les couches raster avec une table attributaire de rasters sont prises en charge.
Les enregistrements du paramètre Join Table (Table de jointure) seront appariés aux enregistrements du paramètre Input Table (Table en entrée). Un appariement est effectué lorsque les valeurs du champ en entrée et du champ de jointure sont égales. Cette jointure est temporaire.
Illustration

Utilisation
La valeur du paramètre Input Table (Table en entrée) peut être une couche d’entités, une vue tabulaire ou une couche raster avec une table attributaire. Si un chemin de données est utilisé, la couche est créée avec une jointure. La jointure se trouvera toujours dans la couche, pas avec les données.
Pour créer une jointure permanente, utilisez l’outil Joindre un champ ou utilisez la couche jointe en tant qu’entrée de l’un des outils suivants : Copier des entités, Copier des lignes, Exporter des entités ou [Exporter une table] (../conversion/export-table.yml). Lorsque vous enregistrez les résultats dans une nouvelle classe d’entités ou table, l’environnement Maintain fully qualified field names (Gérer les noms de champs complets) peut être utilisé pour contrôler si les noms de champs joints en sortie incluent le nom de la table d’origine du champ. Les alias de champ sont conservés depuis la couche vers la sortie, sauf si la sortie est un shapefile.
Utilisez les outils Créer une couche de requête, Créer une vue de base de données ou Créer une couche de requête d’agrégation pour optimiser les performances d’une jointure et bénéficier de fonctionnalités supplémentaires lorsque vous souhaitez joindre une géodatabase d’entreprise ou une base de données SQLite.
Si l’entrée correspond à une classe d’entités ou au chemin d’un jeu de données, cet outil crée et renvoie une nouvelle couche contenant le résultat du traitement
Lorsqu’une jointure un vers plusieurs est générée, le résultat de la jointure peut être visualisé dans la table attributaire, où un message d’avertissement indique si la table contient des ID d’objet dupliqués. Étant donné que de nombreux outils de géotraitement ne prennent pas en charge les données contenant des ID d’objet dupliqués et que le traitement de telles données est susceptible de générer des résultats inattendus, il est recommandé de d’abord copier la couche jointe dans une nouvelle classe d’entités à l’aide de l’outil Exporter des entités. Utilisez ensuite cette nouvelle classe d’entités comme entrée d’autres outils de géotraitement.
Vous pouvez également définir le paramètre Join Operation (Opération de jointure) sur Join one to first (Joindre un vers premier) pour éviter tout ID d’objet dupliqué.
Le paramètre Join Operation (Opération de jointure) permet d’ajuster la cardinalité lorsqu’un enregistrement en entrée apparie plusieurs enregistrements de la table de jointure. Par défaut, l’outil utilise une opération de jointure un vers plusieurs lorsqu’elle est prise en charge par la source de données de la table de jointure et en entrée. Les jointures un vers plusieurs sont prises en charge lorsque les tables de jointure et en entrée se trouvent dans la même base de données de format géodatabase fichier, géodatabase mobile, géodatabase d’entreprise et espace de travail en mémoire. Les jeux de données en branche versionnée ne prennent pas en charge les jointures un vers plusieurs.
Une opération de jointure un vers premier utilise le premier appariement dans la table de jointure, ce qui peut générer des appariements différents chaque fois que vous exécutez la jointure. Les jointures un vers premier ne sont pas sensibles à la casse, contrairement aux jointures un vers plusieurs.
Les tables suivantes comprennent des sorties potentielles de l’exécution d’une jointure avec différentes entrées.
La première table illustre une jointure de type un vers plusieurs. La conservation d’enregistrements d’appariement uniquement n’a aucun effet, car tous les enregistrements ont des appariements.
Table en entrée
Table de jointure
Résultat
Champ en entrée
Type
Champ de jointure
Valeur
Champ en entrée
Type
Champ de jointure
Valeur
1
A
1
100
1
A
1
100
2
B
2
200
2
B
2
200
1
300
1
A
1
300
2
400
2
B
2
400
Exemple d’utilisation de l’outil Ajouter une jointure : jointure de type un vers plusieurs lorsque chaque table comporte un champ ID d’objet
La deuxième table utilise une table de jointure sans champ Object ID (ID d’objet) ; seule une jointure de type un vers premier est possible. Une jointure de type un vers premier n’est également possible que si chaque table provient d’espace de travail différent. Une jointure de type un vers premier n’est pas un appariement sensible à la casse.
Table en entrée
Table de jointure
Résultat
Champ en entrée
Type
Champ de jointure
Valeur
Champ en entrée
Type
Champ de jointure
Valeur
1
A
1
100
1
A
1
100
2
B
2
200
2
B
2
200
3
300
4
400
Exemple d’utilisation de l’outil Ajouter une jointure : jointure de type un vers premier lorsqu’une des tables ne comporte pas de champ ID d’objet
Dans la dernière table, la table en entrée contient plus d’enregistrements que la table de jointure. Si vous conservez tous les enregistrements, tous les enregistrements correspondants sont également conservés, plus les enregistrements de la table en entrée qui ne correspondaient pas.
Table en entrée
Table de jointure
Résultat
Champ en entrée
Type
Champ de jointure
Valeur
Champ en entrée
Type
Champ de jointure
Valeur
1
A
1
100
1
A
1
100
2
B
2
200
2
B
2
200
3
C
1
300
1
A
1
300
4
D
2
400
2
B
2
400
3
C
<Null>
<Null>
4
D
<Null>
<Null>
Exemple d’utilisation de l’outil Ajouter une jointure : jointure de type un vers plusieurs lorsque chaque table comporte un champ ID d’objet et que le paramètre Keep all input records (Conserver tous les enregistrements en entrée) est activé
La table en entrée doit comporter un champ d’ ID d’objet pour réaliser une jointure de type un vers plusieurs et se trouver dans le même espace de travail.
Les enregistrements de la table de jointure peuvent être appariés à plusieurs enregistrements si la table de jointure comporte un champ d’ID d’objet. Sinon, une jointure de type un vers premier est réalisée.
Par défaut, tous les enregistrements sont conservés lors de la jointure de tables. Si un enregistrement de la table en entrée n’a pas d’équivalent dans la table de jointure, il affiche des valeurs Null pour tous les champs ajoutés à la table en entrée à partir de la table de jointure.
Table en entrée
Table de jointure
Résultat
Champ en entrée
Type
Champ de jointure
Valeur
Champ en entrée
Type
Champ de jointure
Valeur
1
A
1
100
1
A
1
100
2
B
2
200
2
B
2
200
3
C
1
300
1
A
1
300
4
D
2
400
2
B
2
400
3
C
<Null>
<Null>
4
D
<Null>
<Null>
Lorsque le paramètre Keep all input records (Conserver tous les enregistrements en entrée) est désactivé, si un enregistrement de la table en entrée n’a pas d’équivalent dans la table de jointure, il est supprimé de la table de sortie résultante. Si la table en entrée représente la table attributaire d’une couche, les entités sans données jointes n’apparaissent pas sur la carte.
Table en entrée
Table de jointure
Résultat
Champ en entrée
Type
Champ de jointure
Valeur
Champ en entrée
Type
Champ de jointure
Valeur
1
A
1
100
1
A
1
100
2
B
2
200
2
B
2
200
3
300
4
400
Si une couche de type un vers plusieurs est utilisée, l’outil Calculer un champ mettra à jour le premier enregistrement rencontré et ignorera les enregistrements en double restants. Si des valeurs de champ de couche joint sont mises à jour manuellement dans la vue tabulaire, c’est la dernière modification effectuée est conservée.
Les propriétés de champ telles que les alias, la visibilité et la mise en forme des nombres, sont conservées lors de l’ajout ou de la suppression d’une jointure.
La jointure est conservée uniquement pour la durée de la couche. Pour conserver une couche, enregistrez la session ArcGIS Pro ou enregistrez-la dans un fichier de couche à l’aide de l’outil Enregistrer une couche dans un fichier.
Pour voir le résultat d’une jointure créée dans un outil de script, l’outil doit inclure la couche en tant que paramètre en sortie dérivé. De la même manière, le paramètre Updated Input Layer or Table View (Couche ou vue tabulaire en entrée mise à jour) doit être défini en tant que paramètre en sortie dérivé dans un outil de modèle pour voir les résultats joints.
Dans la table résultante, les champs seront préfixés avec le nom de l’entrée et un point (.) ; tous les champs de la table de jointure seront préfixés avec le nom de table de jointure et un point comme valeur par défaut.
Par exemple, joindre landuse, qui comporte les champs
AetB, à lookup_tab, qui comporte les champsCetD, donne une couche ou une vue tabulaire avec les champs suivants :landuse.A,landuse.B,lookup_tab.Cetlookup_tab.D.Les noms de champ d’une couche doivent être uniques. Si la table en entrée et la table de jointure portent le même nom et se trouvent dans des espaces de travail différents, il est impossible de procéder à une jointure sans créer une couche mal définie.
L’indexation du champ en entrée et du champ de jointure peut améliorer les performances. Si le paramètre Index joined fields (Champs de jointure des index) est activé, un index attributaire est ajouté aux deux champs de jointure. Par ailleurs, chaque champ de jointure peut être indexé à l’aide de l’outil Ajouter un index attributaire
Si les résultats de la jointure sont imprévus ou incomplets, vérifiez si le champ en entrée et le champ de jointure sont indexés. S’ils ne le sont pas, essayez d’ajouter un index. S’ils le sont, essayez de supprimer l’index, puis de l’ajouter à nouveau pour corriger le problème. Vous pouvez aussi sélectionner le paramètre Rebuild Join Field Indexes (Recréer les index de champ de jointure) pour retirer les index existants et les créer à nouveau.
Si les champs de la couche ou de la vue tabulaire en entrée ont été modifiés (renommés ou masqués) à l’aide du paramètre Field Info (Informations de champ) dans l’outil Générer une couche d’entités ou Générer une vue tabulaire, ces modifications de champ ne seront pas reportées dans la couche ou la vue tabulaire jointe en sortie.
L’ensemble de définition de la table de jointure est appliqué à la couche ou vue tabulaire en entrée en ajoutant une nouvelle requête active. La requête précédente est conservée et définie comme inactive afin d’être désactivée dans la table jointe au besoin. L’ensemble de définition peut être supprimé à l’aide de l’outil Supprimer une jointure.
Si la table de jointure a un ensemble de définition, le paramètre Keep all input records (Conserver tous les enregistrements en entrée) n’a aucun effet. La mise à jour manuelle de l’ensemble de définition par l’ajout de
or OBJECTID is nullpeut résoudre ce problème, le cas échéant.L’outil Valider la jointure peut être utilisé pour valider une jointure entre deux couches ou tables afin de déterminer si celles-ci ont des noms de champ et des champs d’ID d’objet valides, si la jointure produit des enregistrements correspondants, s’il s’agit d’une jointure un vers un ou un vers plusieurs, et d’autres propriétés de la jointure.
Pour faciliter l’utilisation de l’outil, la boîte de dialogue associée contient un bouton permettant de valider la jointure.
Cet outil ignore les sélections des tables en entrée et de jointure. L’outil Joindre un champ prend en charge les sélections. Pour effectuer la jointure uniquement avec un sous-ensemble sélectionné, créez une couche de sélection et utilisez-la comme entrée de l’outil. Les propriétés de la couche de jointure sont copiées lorsque que vous créez une couche de sélection.
Paramètres
| Etiqueter | Explication | Type de données |
|---|---|---|
|
Input Table (Table en entrée) |
La couche ou la vue tabulaire à laquelle la table de jointure sera jointe. |
Mosaic Layer; Raster Layer; Table View |
|
Champ en entrée |
Le champ de la couche ou de la vue tabulaire en entrée sur lequel la jointure sera basée. |
Field |
|
Table de jointure |
Table ou vue tabulaire qui va être jointe à la couche ou à la vue tabulaire en entrée. |
Mosaic Layer; Raster Layer; Table View |
|
Joindre un champ |
Champ dans la table de jointure qui contient les valeurs sur lesquelles sera basée la jointure. |
Field |
|
Conserver tous les enregistrements en entrée (Facultatif) |
Spécifie si seuls les enregistrements de l’entrée qui correspondent à un enregistrement de la table de jointure sont inclus dans la sortie, ou si tous les enregistrements de la couche ou de la vue tabulaire en entrée sont inclus.
|
Boolean |
|
Champs de jointure des index (Facultatif) |
Spécifie si les index attributaires de la table seront ajoutés au champ en entrée et au champ de jointure.
|
Boolean |
|
Recréer les index des champs joints (Facultatif) |
Spécifie si les index du champ en entrée et du champ de jointure seront supprimés et créés à nouveau.
|
Boolean |
|
Opération de jointure (Facultatif) |
Indique si la jointure sera une jointure un vers plusieurs ou un vers premier lorsque les données présentent une cardinalité un vers plusieurs. Les opérations de jointure un vers plusieurs sont prises en charge lorsque les tables de jointure et en entrée se trouvent dans la même base de données de format géodatabase fichier, géodatabase mobile, géodatabase d’entreprise et espace de travail en mémoire. Les jeux de données en branche versionnée ne prennent pas en charge les jointures un vers plusieurs. Si aucune valeur de paramètre n’est indiquée, l’opération de jointure sera de type un vers plusieurs si elle est prise en charge ; sinon, elle sera de type un vers premier.
|
String |
Sortie dérivée
| Etiqueter | Explication | Type de données |
|---|---|---|
|
Couche ou vue tabulaire en entrée mise à jour |
Jeu de données en entrée mis à jour. |
Table View; Raster Layer; Mosaic Layer |
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui