Agregar unión (Administración de datos)

Resumen

Une una capa a otra capa o tabla basándose en un campo común. Se admiten capas de entidades, vistas de tabla y capas ráster con una tabla de atributos ráster.

Los registros del parámetro Tabla a unir se hacen coincidir con los registros del parámetro Tabla de entrada. Cuando los valores del campo de unión de entrada y del campo de tabla a unir son iguales, se produce una coincidencia. Esta unión es temporal.

Ilustración

Ilustración de la herramienta Agregar unión

Uso

  • El valor del parámetro Tabla de entrada puede ser una capa de entidades, una vista de tabla o una capa ráster con una tabla de atributos. Si se utiliza una ruta de datos, la capa se creará con la unión. La unión siempre residirá en la capa, no con los datos.

  • Para hacer una unión permanente, utilice la herramienta Campo de unión o utilice la capa unida como entrada en una de las siguientes herramientas: Copiar entidades, Copiar filas, De clase de entidad a clase de entidad o De tabla a tabla.Al guardar los resultados en una nueva clase de entidad o tabla, puede utilizar el entorno Nombres de campos calificados para controlar si los nombres de campos de salida unidos están calificados con el nombre de la tabla de la que procede el campo.

  • Si la entrada es una clase de entidad o una ruta de dataset, esta herramienta creará y devolverá automáticamente una nueva capa con el resultado de la herramienta aplicada.

  • Las siguientes tablas incluyen resultados posibles de realizar una unión con varias entradas.

    La primera tabla muestra una unión de uno a muchos. Mantener solo los registros coincidentes no tendrá ningún efecto, ya que todos los registros tienen coincidencias.

    Tabla de entradaTabla de uniónResultado

    Campo de entrada

    Tipo

    Campo de unión

    Valor

    Campo de entrada

    Tipo

    Campo de unión

    Valor

    1

    Un

    1

    100

    1

    Un

    1

    100

    2

    B

    2

    200

    2

    B

    2

    200

    1

    300

    1

    Un

    1

    300

    2

    400

    2

    B

    2

    400

    Ejemplo de Agregar unión: unión de uno a muchos cuando cada tabla tiene un campo de Id. de objeto

    La segunda tabla utiliza una tabla de unión sin Id. de objeto; solo es posible una unión de uno a uno.

    Tabla de entradaTabla de uniónResultado

    Campo de entrada

    Tipo

    Campo de unión

    Valor

    Campo de entrada

    Tipo

    Campo de unión

    Valor

    1

    Un

    1

    100

    1

    Un

    1

    100

    2

    B

    2

    200

    2

    B

    2

    200

    3

    300

    4

    400

    Ejemplo de Agregar unión: unión de uno a uno cuando ninguna de las tablas tiene un campo de Id. de objeto

    Por último, la tabla de entrada tiene más registros que la tabla de unión; mantener todos los registros mantendrá todos los registros coincidentes más los registros de la tabla de entrada que no coinciden.

    Tabla de entradaTabla de uniónResultado

    Campo de entrada

    Tipo

    Campo de unión

    Valor

    Campo de entrada

    Tipo

    Campo de unión

    Valor

    1

    Un

    1

    100

    1

    Un

    1

    100

    2

    B

    2

    200

    2

    B

    2

    200

    3

    C

    1

    300

    1

    Un

    1

    300

    4

    D

    2

    400

    2

    B

    2

    400

    3

    C

    <Nulo>

    <Nulo>

    4

    D

    <Nulo>

    <Nulo>

    Ejemplo de Agregar unión: unión de uno a muchos cuando cada tabla tiene un campo de Id. de objeto y el parámetro Mantener todas las entidades de destino está activado

    La tabla de entrada debe tener un campo de Id. de objeto para realizar una unión de uno a muchos.

  • Los registros de la tabla de unión se pueden hacer coincidir con más de un registro si la tabla de unión tiene un campo de Id. de objeto; de lo contrario, se realizará una unión de uno a uno.

  • Cuando une tablas, la opción predeterminada es mantener todos los registros. Si un registro de la tabla de destino no coincide con otro en la tabla de unión, se establecen valores nulos determinados en ese registro para todos los campos que se anexan a la tabla de destino desde la tabla de unión.

    Tabla de entradaTabla de uniónResultado

    Campo de entrada

    Tipo

    Campo de unión

    Valor

    Campo de entrada

    Tipo

    Campo de unión

    Valor

    1

    Un

    1

    100

    1

    Un

    1

    100

    2

    B

    2

    200

    2

    B

    2

    200

    3

    C

    1

    300

    1

    Un

    1

    300

    4

    D

    2

    400

    2

    B

    2

    400

    3

    C

    <Nulo>

    <Nulo>

    4

    D

    <Nulo>

    <Nulo>

    Con la opción de conservar únicamente los registros coincidentes, si un registro de la tabla de destino no tiene una coincidencia en la tabla de unión, ese registro se quita de la tabla de destino resultante. Si la tabla de destino es la tabla de atributos de una capa, las entidades que no tienen datos unidos no se muestran en el mapa.

    Tabla de entradaTabla de uniónResultado

    Campo de entrada

    Tipo

    Campo de unión

    Valor

    Campo de entrada

    Tipo

    Campo de unión

    Valor

    1

    Un

    1

    100

    1

    Un

    1

    100

    2

    B

    2

    200

    2

    B

    2

    200

    3

    300

    4

    400

  • Las propiedades de campos, tales como los alias, la visibilidad y el formato de número se mantienen cuando se agrega o se quita una unión.

  • A la tabla de entrada se le permite una unión cada vez.

  • La unión persiste solo lo que dure la capa. Una capa se puede retener guardando la sesión de ArcGIS Pro o guardándola en un archivo de capa con la herramienta Guardar capa en archivo.

    Para ver los resultados de una unión creada en una herramienta de script, la herramienta debe incluir la capa como un parámetro de salida derivado. Del mismo modo, el parámetro Tabla de entrada actualizada se debe establecer como un parámetro de salida derivado en una herramienta de modelo para ver los resultados unidos.

  • En la tabla de entrada resultante, los campos recibirán de prefijo el nombre de la entrada y un punto (.) y, de manera predeterminada, todos los campos de la tabla de unión recibirán de prefijo el nombre de la tabla de unión y un punto.

    • Por ejemplo, al unir landuse, que tiene los campos A y B, a lookup_tab, que tiene los campos C y D, se generará una capa o una vista de tabla con los siguientes campos: landuse.A, landuse.B, lookup_tab.C y lookup_tab.D.

  • Indexar los campos de la tabla de entrada y la tabla de unión sobre la que se basará la unión puede mejorar el rendimiento. Si el parámetro Indexar campos de unión está activado, se agrega un índice de atributos a ambos campos de unión. Como alternativa, es posible indexar cada campo de unión con la herramienta Agregar índice de atributos.

  • Si los campos de la capa o vista de tabla de entrada se modificaron (se les cambió el nombre o se ocultaron) con el parámetro Información del campo de la herramienta Crear capa de entidades o Crear vista de tabla, las modificaciones del campo no se incluirán en la capa unida de salida o en la vista de tabla.

  • La consulta de definición de la tabla de unión se aplicará a la capa o vista de tabla de entrada. La consulta de definición se puede eliminar con la herramienta Quitar unión o quitando manualmente la consulta de definición de la capa.

  • La herramienta Validar unión se puede utilizar para validar una unión entre dos capas o tablas con el fin de determinar si las capas o tablas tienen nombres de campo y campos ObjectID válidos, si la unión produce registros coincidentes, si es una unión de uno a uno o de uno a muchos y otras propiedades de la unión.

    El cuadro de diálogo de esta herramienta contiene un botón para validar la unión que facilita esta operación.

  • Las selecciones de la capa no se usan en la herramienta Agregar unión, pero se utilizan en la herramienta Campo de unión.

Parámetros

EtiquetaExplicaciónTipo de datos
Tabla de entrada

Capa o vista de tabla a la que se unirá la tabla a unir.

Mosaic Layer; Raster Layer; Table View
Campo de unión de entrada

Campo en la capa o vista de tabla de entrada sobre el que se basará la unión.

Field
Tabla de unión

Tabla o vista de tabla que se unirá a la capa o vista de tabla de entrada.

Mosaic Layer; Raster Layer; Table View
Campo Tabla a unir

El campo en la tabla de unión que contiene los valores sobre los cuales se basará la unión.

Field
Mantener todas las entidades destino
(Opcional)

Especifica si la salida solo incluirá los registros de la entrada que coinciden con un registro de la tabla a unir.

  • Activado: todos los registros de la capa o vista de tabla de entrada se incluirán en la salida. También se conoce como unión externa. Esta es la opción predeterminada.
  • Desactivado: la salida solo incluirá los registros de la entrada que coinciden con un fila de la tabla de unión. También se conoce como unión interna.
Boolean
Indexar campos de unión
(Opcional)

Especifica si se agregarán índices de atributo de tabla a ambos campos de unión.

  • Activado: se indexarán ambos campos de unión. Si la tabla ya tiene un índice, no se agregará un índice nuevo.
  • Desactivado: no se agregarán índices. Esta es la opción predeterminada.
Boolean

Salida derivada

EtiquetaExplicaciónTipo de datos
Capa de entrada o vista de tabla actualizadas

El dataset de entrada actualizado.

Table View; Raster Layer; Mosaic Layer

arcpy.management.AddJoin(in_layer_or_view, in_field, join_table, join_field, {join_type}, {index_join_fields})
NombreExplicaciónTipo de datos
in_layer_or_view

Capa o vista de tabla a la que se unirá la tabla a unir.

Mosaic Layer; Raster Layer; Table View
in_field

Campo en la capa o vista de tabla de entrada sobre el que se basará la unión.

Field
join_table

Tabla o vista de tabla que se unirá a la capa o vista de tabla de entrada.

Mosaic Layer; Raster Layer; Table View
join_field

El campo en la tabla de unión que contiene los valores sobre los cuales se basará la unión.

Field
join_type
(Opcional)

Especifica si la salida solo incluirá los registros de la entrada que coinciden con un registro de la tabla a unir.

  • KEEP_ALLTodos los registros de la capa o vista de tabla de entrada se incluirán en la salida. También se conoce como unión externa. Esta es la opción predeterminada.
  • KEEP_COMMONLa salida solo incluirá los registros de la entrada que coinciden con un fila de la tabla de unión. También se conoce como unión interna.
Boolean
index_join_fields
(Opcional)

Especifica si se agregarán índices de atributo de tabla a ambos campos de unión.

  • INDEX_JOIN_FIELDSSe indexarán ambos campos de unión. Si la tabla ya tiene un índice, no se agregará un índice nuevo.
  • NO_INDEX_JOIN_FIELDSNo se agregarán índices. Esta es la opción predeterminada.
Boolean

Salida derivada

NombreExplicaciónTipo de datos
out_layer_or_view

El dataset de entrada actualizado.

Table View; Raster Layer; Mosaic Layer

Muestra de código

Ejemplo 1 AddJoin (ventana de Python)

El siguiente script de la ventana de Python demuestra cómo utilizar la función AddJoin de modo inmediato.

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")
Ejemplo 2 de AddJoin (script independiente)

Este script independiente muestra la función AddJoin como parte de un flujo de trabajo para unir una tabla a una clase de entidad y extraer las entidades especificadas.

# 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"
# The qualifiedFieldNames environment is used by Copy Features when persisting 
# the join field names.
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)

Entornos

Casos especiales

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados