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
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 entrada Tabla de unión Resultado 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.
Tabla de entrada Tabla de unión Resultado 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 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 entrada Tabla de unión Resultado 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.
Los registros de la tabla de unión se pueden hacer coincidir con más de un registro si 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 entrada Tabla de unión Resultado 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 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 entrada Tabla de unión Resultado 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 guardar guardando la sesión de ArcGIS Pro o guardándola en un archivo de capa con la herramienta Guardar capa en archivo.
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 campos A y B, a lookup_tab, que tiene 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. Los campos se pueden indexar con la herramienta Agregar índice de atributos.
Si los campos de la capa o vista de tabla de entrada se modifican (se les cambia el nombre o se ocultan) con el parámetro Información de campo de las herramientas Crear capa de entidades o Crear vista de tabla, estas modificaciones de campos no se trasladarán a 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 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.
Sintaxis
arcpy.management.AddJoin(in_layer_or_view, in_field, join_table, join_field, {join_type})
Parámetro | Explicación | Tipo 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.
| Boolean |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_layer_or_view | El dataset de entrada actualizado. | Vista de tabla; Capa ráster; Capa de mosaico |
Muestra de código
El siguiente script 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.AddJoin_management("vegetation", "HOLLAND95",
"vegtable", "HOLLAND95")
arcpy.CopyFeatures_management(veg_joined_table, "vegjoin")
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 deseadas.
# 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
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí