Joindre un champ (Gestion des données)

Synthèse

Permet de joindre définitivement le contenu d’une table à une autre table en fonction d’un champ attributaire commun. La table en entrée est mise à jour pour contenir les champs de la table de jointure. Vous pouvez sélectionner quels champs de la table de jointure seront ajoutés à la table en entrée.

Utilisation

  • Les enregistrements de la valeur de Input Table (Table en entrée) sont appariés aux enregistrements de la valeur de Join Table (Table de jointure) en fonction des valeurs des paramètres Input Join Field (Champ de jointure en entrée) et Join Table Field (Champ de table de jointure). Vous pouvez également sélectionner des champs spécifiques dans la valeur de Join Table (Table de jointure) et les ajouter à la valeur de Input Table (Table en entrée) pendant la jointure.

  • La valeur de Input Table(Table en entrée) peut être une classe d’entités (incluant un shapefile) ou une table.

  • Tous les champs de la valeur de Input Table (Table en entrée) seront conservés pendant la jointure. Vous pouvez également sélectionner des champs spécifiques de la valeur de Join Table (Table de jointure) à ajouter à la sortie. Utilisez le paramètre Transfer Fields (Transférer des champs) pour ajouter ces champs.

  • Les enregistrements de la valeur de Join Table (Table de jointure) peuvent être appariés à un ou plusieurs enregistrements dans la valeur de Input Table (Table en entrée).

  • Si aucun champ n’est sélectionné pour le paramètre facultatif Transfer Fields (Transférer des champs), tous les champs de la valeur de Join Table (Table de jointure) sont joints à la sortie. Pour modifier les noms, les alias ou les propriétés de champ, définissez le paramètre Transfer Method (Méthode de transfert) sur Use field mapping (Utiliser l’appariement de champs).

  • Les jointures peuvent être basées sur des champs de type texte, date ou nombre.

  • Les jointures basées sur des champs de texte respectent la casse.

  • Les champs de formats de nombre différent peuvent être joints tant que les valeurs sont égales. Par exemple, un champ de type réel simple peut être joint à un champ de nombre entier court.

  • Lorsqu’ils sont joints à une table en entrée, les champs de la table de jointure associés à un type d’ID global ou un type d’ID d’objet ne sont pas transférés.

    Les valeurs de Input Join Field (Champ de jointure en entrée) et de Join Table Field (Champ de table en entrée) peuvent avoir des noms de champ différents.

  • Si un champ de jointure porte le même nom qu'un champ de la table en entrée, il est ajouté au champ joint le suffixe _1 (ou _2, ou _3, etc.) pour le rendre unique.

  • Si l’option Select transfer fields (Sélectionner des champs de transfert) est spécifiée pour le paramètre Transfer Method (Méthode de transfert) et si les valeurs de champ du paramètre Join Table Field (Champ de table de jointure) ne sont pas uniques, seule la première occurrence de chaque valeur est utilisée. Pour prendre en compte les valeurs autres que la première occurrence (jointure de type un vers plusieurs), définissez le paramètre Transfer Method (Méthode de transfert) sur Use field mapping (Utiliser l’appariement de champs). Pour effectuer une jointure de type un vers plusieurs, la valeur du paramètre Input Table (Table en entrée) doit avoir un champ ID d’objet et se trouver dans le même espace de travail que la valeur du paramètre Join Table (Table de jointure).

  • Utilisez le paramètre Field Map (Appariement des champs) pour gérer les champs et leur contenu dans le jeu de données en sortie.

    • Ajoutez et supprimez des champs de la liste des champs, réorganisez la liste des champs et renommez des champs.
    • Le type de données par défaut d’un champ en sortie est le même que le type de données du premier champ en entrée (du même nom) qu’il rencontre. Vous pouvez modifier le type de données en un autre type de données valide.
    • Utilisez une action pour identifier la manière dont les valeurs d’un ou de plusieurs champs en entrée sont fusionnés en un seul champ en sortie. Les actions disponibles sont First (Premier), Last (Dernier), Concatenate (Concaténer), Sum (Somme), Mean (Moyenne), Median (Médiane), Mode, Minimum, Maximum, Standard Deviation (Écart type) et Count (Total).
    • Lorsque vous utilisez l’action Concatenate (Concaténer), vous pouvez spécifier un délimiteur, comme une virgule ou d’autres caractères. Cliquez au début de la zone de texte Delimiter (Délimiteur) pour ajouter les caractères de délimitation.
    • L’option Standard Deviation (Écart type) n’est pas valide pour une seule valeur en entrée.
    • Utilisez le bouton Slice Text (Texte de tranche) sur les champs de la source du texte pour préciser les caractères d’une valeur en entrée à extraire vers le champ en sortie. Pour accéder au bouton Slice Text (Texte de tranche), survolez un champ de texte dans la liste des champs en entrée, puis spécifiez les positions des caractères de début et de fin.
    • Il est également possible d’apparier des champs à l’aide de scripts Python.

  • Si le paramètre Field Map (Appariement des champs) est spécifié dans la règle de combinaison de la jointure, il est impossible de garantir que l’ordre des valeurs jointes sera cohérente avec l’ordre des lignes du paramètre Join Table Field (Champ de table de jointure) si les valeurs ne sont pas uniques. Par exemple, si vois joignez trois entités avec comme valeurs attributaires pour ANIMAL souris, chat et chien, le résultat ne sera pas forcément dans cet ordre : souris, chat et chien.

  • L’outil Valider une 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, ou 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.

  • L’indexation du champ en entrée et du champ de jointure peut améliorer les performances. Utilisez le paramètre Index Join Fields (Champs de jointure des index) pour ajouter ou remplacer les index.

  • 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 déjà, essayez de supprimer l’index, puis de l’ajouter à nouveau pour corriger le problème. Utilisez le paramètre Index Join Fields (Champs de jointure des index) pour gérer les index lors de l’exécution de l’outil.

Paramètres

ÉtiquetteExplicationType de données
Input Table (Table en entrée)

Table ou classe d'entités à laquelle la table de jointure sera jointe.

Mosaic Layer; Raster Layer; Table View
Champ en entrée

Champ de la table en entrée sur lequel la jointure sera basée.

Field
Table de jointure

Table qui va être jointe à la table 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
Transférer des champs
(Facultatif)

Champs de la table de jointure qui vont être transférés vers la table en entrée, selon une jointure entre la table en entrée et la table de jointure.

Field
Méthode de transfert
(Facultatif)

Indique comment les types de champ et les champs de jointure vont être transférés vers la sortie.

  • Sélectionner des champs de transfertLes champs et les types de champs de la table jointe sont transférés vers la sortie. Il s’agit de l’option par défaut.
  • Utiliser l’appariement de champsLe transfert des champs et des types de champ de la table jointe vers la sortie est contrôlé par le paramètre Field Map (Appariement des champs).
String
Appariement des champs
(Facultatif)

Les champs sont joints à la table en entrée avec leurs propriétés et champs sources respectifs. Tous les champs de la table de jointure sont inclus par défaut.

Utilisez l’appariement des champs pour ajouter, supprimer, renommer et réorganiser les champs, ainsi que pour modifier d’autres propriétés des champs.

L’appariement des champs peut servir à combiner les valeurs de deux champs en entrée ou plus en un seul champ en sortie.

Field Mappings
Champs de jointure des index
(Facultatif)

Spécifie si les index attributaires seront ajoutés ou remplacés pour le champ en entrée et le champ de jointure.

  • Ne pas ajouter d’indexLes index attributaires ne seront pas ajoutés. Il s’agit de l’option par défaut.
  • Ajouter un index attributaire pour les champs qui n’ont pas d’index existantUn index attributaire sera ajouté pour tout champ qui n’a pas d’index. Les index attributaires existants seront conservés.
  • Remplacer les index pour tous les champsUn index attributaire sera ajouté pour tout champ qui n’a pas d’index. Les index attributaires existants seront remplacés.
String

Sortie obtenue

ÉtiquetteExplicationType de données
Table en entrée mise à jour

Jeu de données en entrée mis à jour.

Table View; Raster Layer; Mosaic Layer

arcpy.management.JoinField(in_data, in_field, join_table, join_field, {fields}, {fm_option}, {field_mapping}, {index_join_fields})
NomExplicationType de données
in_data

Table ou classe d'entités à laquelle la table de jointure sera jointe.

Mosaic Layer; Raster Layer; Table View
in_field

Champ de la table en entrée sur lequel la jointure sera basée.

Field
join_table

Table qui va être jointe à la table en entrée.

Mosaic Layer; Raster Layer; Table View
join_field

Champ dans la table de jointure qui contient les valeurs sur lesquelles sera basée la jointure.

Field
fields
[fields,...]
(Facultatif)

Champs de la table de jointure qui vont être transférés vers la table en entrée, selon une jointure entre la table en entrée et la table de jointure.

Field
fm_option
(Facultatif)

Indique comment les types de champ et les champs de jointure vont être transférés vers la sortie.

  • NOT_USE_FMLes champs et les types de champs de la table jointe sont transférés vers la sortie. Il s’agit de l’option par défaut.
  • USE_FMLe transfert des champs et des types de champ de la table jointe vers la sortie est contrôlé par le paramètre field_mapping.
String
field_mapping
(Facultatif)

Les champs sont joints à la table en entrée avec leurs propriétés et champs sources respectifs. Tous les champs de la table de jointure sont inclus par défaut.

Utilisez l’appariement des champs pour ajouter, supprimer, renommer et réorganiser les champs, ainsi que pour modifier d’autres propriétés des champs.

L’appariement des champs peut servir à combiner les valeurs de deux champs en entrée ou plus en un seul champ en sortie.

Dans Python, utilisez la classe FieldMappings pour définir ce paramètre.

Field Mappings
index_join_fields
(Facultatif)

Spécifie si les index attributaires seront ajoutés ou remplacés pour le champ en entrée et le champ de jointure.

  • NO_INDEXESLes index attributaires ne seront pas ajoutés. Il s’agit de l’option par défaut.
  • NEW_INDEXESUn index attributaire sera ajouté pour tout champ qui n’a pas d’index. Les index attributaires existants seront conservés.
  • REPLACE_INDEXESUn index attributaire sera ajouté pour tout champ qui n’a pas d’index. Les index attributaires existants seront remplacés.
String

Sortie obtenue

NomExplicationType de données
out_layer_or_view

Jeu de données en entrée mis à jour.

Table View; Raster Layer; Mosaic Layer

Exemple de code

Exemple 1 d’utilisation de l’outil JoinField (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l’utilisation de la fonction JoinField en mode immédiat.

import arcpy
arcpy.env.workspace = "C:/data/data.gdb"
arcpy.management.JoinField("zion_park", "zonecode", "zion_zoning", "zonecode", 
                           ["land_use", "land_cover"])
Exemple 2 d'utilisation de l'outil JoinField (script autonome)

Ce script Python autonome illustre l’utilisation de la fonction JoinField pour joindre une table à une classe d’entités en n’incluant que deux des champs de la table dans la jointure.

# PermanentJoin.py
# Purpose: Join two fields from a table to a feature class 

# Import system modules
import arcpy

# Set the current workspace 
arcpy.env.workspace = "c:/data/data.gdb"

# Set the local parameters
inFeatures = "zion_park"
joinField = "zonecode"
joinTable = "zion_zoning"
fieldList = ["land_use", "land_cover"]

# Join two feature classes by the zonecode field and only carry 
# over the land use and land cover fields
arcpy.management.JoinField(inFeatures, joinField, joinTable, joinField, 
                           fieldList)