添加连接 (数据管理)

描述

基于公共字段将图层连接到另一图层或表。支持带有栅格属性表的要素图层、表视图和栅格图层。

连接表中的记录与输入表中的记录相匹配。输入连接字段值与连接表字段值相等时,即表示匹配。此连接是临时性连接。

插图

添加连接

使用方法

  • 输入必须是带有属性表的要素图层、表视图或栅格图层。

  • 如果输入为要素类或数据集路径,则此工具将自动创建并返回应用了该工具结果的新图层。

  • 连接表中的记录可以与输入图层或表视图中的多个记录相匹配。

  • 连接表时,默认选项是保留所有记录。如果目标表中的某条记录在连接表中没有匹配项,则对于从连接表追加到目标表中的所有字段,该记录将被赋予空值。

    使用“保留所有记录”时的连接示例

    使用“仅保留匹配记录”选项时,如果目标表中的某条记录在连接表中没有匹配项,则该记录将被从生成的目标表中移除。如果目标表是某一图层的属性表,则未连接数据的要素将不会显示在地图上。

    使用“仅保留匹配记录”时的连接示例

  • 输入图层或表视图必须有 ObjectID 字段。连接表不必包含 ObjectID 字段。

  • 添加或移除连接时,将保留字段属性,例如别名、可见性和数字格式设置。

  • 如果已存在使用同一表名的连接,例如,将图层 A 连接到表 B 后,再次运行工具连接表 B 时就会出现警告,指示该连接已存在。

  • 连接仅在会话期间有效。要保存连接以便将其用于另一会话中,请使用保存图层至文件工具将图层保存到图层文件中。此方法仅适用于图层,表视图不能使用此方式进行保存。

  • 在生成的图层或表视图中,输入图层或表视图中的字段将以输入的名称和句点 (.) 为前缀,默认情况下,连接表中的所有字段都将以连接表名称加上句点作为前缀。

    • 例如,将带有 AB 字段的 landuse 连接到带有 CD 字段的 lookup_tab,将得到带有以下字段的图层或表视图:landuse.Alanduse.Blookup_tab.Clookup_tab.D
    • 对于 coverage 要素类和 INFO 表,表和字段名称分隔符是冒号 (:) 而不是句点。

  • 要进行永久连接,可使用连接字段工具。另一种使连接永久化的方法是将连接要素图层保存到新要素类中或将连接表视图保存到新表中。当将这些结果保存到新要素类或表时,可以使用限定的字段名环境控制是否使用字段所在表的名称限定连接输出字段名称。

  • 通过对输入图层或表视图以及基于连接的连接表中的字段建立索引,可以提高性能。此操作可以通过添加属性索引工具完成。

  • 如果使用创建要素图层创建表视图工具的字段信息参数对输入图层或表视图的字段进行了更改(重命名或隐藏),则这些字段更改将不会在输出连接图层或表视图中得以体现。

  • 连接表定义查询将应用于输入图层或表视图。可以使用移除连接工具来移除定义查询,也可从图层中手动移除定义查询。

  • 验证连接工具可用于验证两个图层或表之间的连接,以确定图层或表是否具有有效的字段名称和对象 ID 字段,但前提是该连接生成匹配记录,是一对一或一对多连接,以及其他连接属性。

    该工具的对话框上有一个用于验证连接的按钮,以方便用户的使用。

语法

AddJoin(in_layer_or_view, in_field, join_table, join_field, {join_type})
参数说明数据类型
in_layer_or_view

连接表将连接的图层或表视图。

Mosaic Layer; Raster Layer; Table View
in_field

连接基于的输入图层或表视图中的字段。

Field
join_table

将连接到输入图层或表视图的图表或表视图。

Mosaic Layer; Raster Layer; Table View
join_field

连接表中的字段,包含连接将基于的值。

Field
join_type
(可选)

指定是否仅将输入中与连接表内的记录相匹配的记录包括在输出中。

  • KEEP_ALL输入图层或表视图中的所有记录都将包含在输出中,也称为外部连接。这是默认设置。
  • KEEP_COMMON只有输入中那些与连接表中的行相匹配的记录才会包括在输出中,也称为内部连接。
Boolean

派生输出

名称说明数据类型
out_layer_or_view

已更新的输入数据集。

表视图;栅格图层;镶嵌图层

代码示例

添加连接 (AddJoin) 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 AddJoin 函数。

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")
添加连接 (AddJoin) 示例 2(独立脚本)

该独立脚本显示了作为工作流一部分的 AddJoin 函数,用于将表连接到要素类,然后提取所需要素。

# 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)

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题