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 valor del parámetro Tabla de unión coincidirán con los registros del valor 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, Exportar entidades o Exportar 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 los campos de salida unidos están calificados con el nombre de la tabla de la que procede el campo. Los alias de campo se conservan desde la capa hasta la salida, excepto cuando la salida es un shapefile.

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

  • Cuando la unión produce una unión de uno a muchos, el resultado de la unión se puede ver en la tabla de atributos, donde un mensaje de advertencia indicará si la tabla tiene Id. de objetos duplicados. Debido a que muchas herramientas de geoprocesamiento no admiten datos con Id. de objetos duplicados y el procesamiento de dichos datos puede generar resultados inesperados, se recomienda que primero copie la capa unida a una nueva clase de entidad mediante la herramienta Exportar entidades. A continuación, use la nueva clase de entidad como entrada para otras herramientas de geoprocesamiento.

  • 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

    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

    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. Una unión de uno a uno también es posible si cada tabla procede de un espacio de trabajo diferente.

    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

    A

    1

    100

    1

    A

    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

    En la última tabla, la tabla de entrada tiene más registros que la tabla de unión. Al mantener todos los registros, se mantienen todos los registros coincidentes más los registros de la tabla de entrada que no coincidían.

    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

    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

    <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 y estar en el mismo espacio de trabajo.

  • 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

    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

    <Nulo>

    <Nulo>

    4

    D

    <Nulo>

    <Nulo>

    Con el parámetro Mantener todas las entidades de destino, 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

    A

    1

    100

    1

    A

    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 AllSource 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 Capa de entrada o vista de tabla actualizadas se debe establecer como un parámetro de salida derivado en una herramienta de modelo para ver los resultados unidos.

  • En la tabla resultante, los campos recibirán de prefijo el nombre de la entrada y un punto (.) y, de forma 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 campos landuse.A, landuse.B, lookup_tab.C y lookup_tab.D.

  • Una capa debe tener nombres de campo únicos. Si tanto la tabla de entrada como la tabla unidad tienen el mismo nombre y están en espacios de trabajo diferentes, no se puede preformar una unión sin crear una capa mal definida.

  • 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 resultados de unión son inesperados o incompletos, revise si los valores de los parámetros Campo de tabla de unión y Campo de unión de entrada están indexados. Si no lo están, pruebe a eliminar y volver a crear el índice y vuelva a ejecutar la herramienta.

  • 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 o vista de tabla unida de salida.

  • 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 la unión 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 la 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 a unir 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 tiene un índice existente, 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 a unir 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 tiene un índice existente, 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)

La siguiente secuencia de comandos de la ventana de Python demuestra cómo utilizar la función AddJoin en modo inmediato.

import arcpy
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
veg_joined_table = arcpy.management.AddJoin("vegetation", "HOLLAND95", 
                                            "vegtable", "HOLLAND95")
arcpy.management.CopyFeatures(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.management.AddJoin(inFeatures, joinField, joinTable, 
                                            joinField)

# Select desired features from veg_layer
arcpy.management.SelectLayerByAttribute(veg_joined_table, "NEW_SELECTION", 
                                        expression)

# Copy the layer to a new permanent feature class
result = arcpy.management.CopyFeatures(veg_joined_table, outFeature)

# See field names and aliases
resultFields = arcpy.ListFields(result)
print([field.name for field in resultFields])
print([field.aliasName for field in resultFields])