Ajouter une jointure (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 de la table de jointure sont appariés aux enregistrements de la table en entrée. Un appariement est effectué lorsque les valeurs du champ de jointure en entrée et du champ de table de jointure sont égales. Cette jointure est temporaire.

Illustration

Ajouter une jointure

Utilisation

  • L’entrée doit être une couche d’entités, une vue tabulaire ou une couche raster possédant une table attributaire.

  • Si l’entrée est le chemin d’accès à une classe d’entités ou à un jeu de données, cet outil crée automatiquement une nouvelle couche en appliquant le résultat de l’outil.

  • Les enregistrements de la Table de jointure peuvent être appariés à plusieurs enregistrements dans la couche ou la vue tabulaire en entrée.

  • Par défaut, tous les enregistrements sont conservés lors de la jointure de tables. Si un enregistrement de la table cible n'a pas d'équivalent dans la table de jointure, il affiche des valeurs Null pour tous les champs ajoutés à la table cible à partir de la table de jointure.

    Exemple de conservation de tous les enregistrements d'une jointure

    Lorsque l'option Conserver uniquement les enregistrements correspondants est activée, si un enregistrement de la table cible n'a pas d'équivalent dans la table de jointure, il est supprimé de la table cible résultante. Si la table cible représente la table attributaire d'une couche, les entités sans données jointes n'apparaissent pas sur la carte.

    Exemple de conservation des enregistrements correspondants uniquement

  • La couche ou la vue tabulaire en entrée doit comporter un champ ObjectID. La table de jointure ne doit pas nécessairement contenir un champ ObjectID.

  • 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.

  • S'il existe déjà une jointure avec le même nom de table, par exemple si la couche A est jointe à la table B, un avertissement indique que la jointure existe déjà si vous réexécutez l'outil pour joindre la table B.

  • La jointure dure uniquement pour la durée de la session. Pour que la jointure persiste dans une autre session, enregistrez la couche dans un fichier de couches à l’aide de l’outil Enregistrer la couche dans un fichier. Cela s'applique seulement aux couches ; les vues tabulaires ne peuvent pas être enregistrées de cette manière.

  • Dans la couche ou la vue tabulaire résultante, les champs de la couche ou de la vue tabulaire en entrée seront préfixés avec le nom de l'entrée et un point (.), et tous les champs de la table de jointure seront préfixés avec le nom de table de jointure plus un point comme valeur par défaut.

    • Par exemple, joindre landuse, qui comporte les champs A et B, à lookup_tab, qui comporte les champs C et D, donne une couche ou une vue tabulaire avec les champs suivants : landuse.A, landuse.B, lookup_tab.C et lookup_tab.D.
    • Pour les classes d'entités de couverture et les tables INFO, le séparateur entre la table et le nom de champ est le signe deux points (:) au lieu du point.

  • Pour créer une jointure permanente, utilisez l’outil Champ de jointure. Une autre méthode pour rendre la jointure permanente est d'enregistrer le couche d'entités jointe dans une nouvelle classe d'entités ou la vue tabulaire jointe dans une nouvelle table. Lorsque vous enregistrez les résultats dans une nouvelle classe d'entités ou table, vous pouvez utiliser l'environnement Qualified Field Names (Noms de champ qualifiés) pour contrôler si les noms de champs joints en sortie sont qualifiés avec le nom de la table d'origine du champ.

  • L'indexation des champs dans la couche ou la vue tabulaire en entrée et dans la Table de jointure sur lesquelles la jointure sera basée peut améliorer les performances. Pour ce faire, utilisez l'outil Ajouter un index attributaire.

  • 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 de l'outil Générer une couche ou Générer une vue tabulaire, en utilisant le paramètre Informations de champ, 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 (Join Table) sera appliqué à la couche ou vue tabulaire en entrée. Pour supprimer l’ensemble de définition, utilisez l’outil Supprimer une jointure ou supprimez manuellement l’ensemble de définition de la couche.

  • 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, ainsi que 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.

Syntaxe

AddJoin(in_layer_or_view, in_field, join_table, join_field, {join_type})
ParamètreExplicationType de données
in_layer_or_view

La couche ou la vue tabulaire à laquelle la table de jointure sera jointe.

Mosaic Layer; Raster Layer; Table View
in_field

Le champ de la couche ou de la vue tabulaire en entrée sur lequel la jointure sera basée.

Field
join_table

La table ou la vue tabulaire à joindre à la couche ou à la vue tabulaire 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
join_type
(Facultatif)

Spécifie si seuls les enregistrements de l’entrée qui correspondent à un enregistrement de la table de jointure seront inclus dans la sortie.

  • KEEP_ALLTous les enregistrements de la couche ou de la vue tabulaire en entrée sont inclus dans la sortie - également appelée jointure externe. Il s’agit de l’option par défaut.
  • KEEP_COMMONSeuls les enregistrements de l’entrée qui correspondent à une ligne de la table de jointure sont inclus dans la sortie (jointure interne).
Boolean

Sortie dérivée

NomExplicationType de données
out_layer_or_view

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

Vue tabulaire, couche raster, couche de mosaïque

Exemple de code

Exemple 1 d'utilisation de la fonction AddJoin (fenêtre Python)

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

import arcpy
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
veg_joined_table = arcpy.AddJoin_management("vegetation", "HOLLAND95", 
                                            "vegtable", "HOLLAND95")
arcpy.CopyFeatures_management(veg_joined_table, "vegjoin")
Exemple 2 d'utilisation de la fonction AddJoin (script autonome)

Ce script autonome illustre la fonction AddJoin dans le cadre d’un processus de joindre une table à une classe d’entités, puis d’extraire ensuite les entités voulues.

# Name: AttributeSelection.py
# Purpose: Join a table to a featureclass and select the desired attributes
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
arcpy.env.qualifiedFieldNames = False
# Set local variables
inFeatures = "vegtype"
joinTable = "vegtable"
joinField = "HOLLAND95"
expression = "vegtable.HABITAT = 1"
outFeature = "vegjoin"
# Join the feature layer to a table
veg_joined_table = arcpy.AddJoin_management(inFeatures, joinField, joinTable, 
                                            joinField)
# Select desired features from veg_layer
arcpy.SelectLayerByAttribute_management(veg_joined_table, "NEW_SELECTION", 
                                        expression)
# Copy the layer to a new permanent feature class
arcpy.CopyFeatures_management(veg_joined_table, outFeature)

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes