ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

添加连接

  • 摘要
  • 插图
  • 用法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

摘要

基于公用字段将图层连接到另一图层或表(其中图层是指要素图层、表视图或带有栅格属性表的栅格图层)。

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

插图

添加连接

用法

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

  • 连接表中的记录可以与输入图层或表视图中的多个记录相匹配。有关一对一、多对一、一对多和多对多连接的详细信息,请参阅关于连接和关联表。

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

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

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

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

  • 连接表 可以是以下任意一种类型的表:地理数据库表、dBASE 文件、INFO 表或 OLE DB 表。

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

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

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

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

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

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

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

  • 通过对输入图层或表视图以及基于连接的连接表中的字段建立索引,可以提高性能。可通过添加属性索引工具或通过右键单击 ArcCatalog 中的输入并使用对话框添加索引到所需字段来完成此操作。

    了解有关连接数据的性能提示的详细信息

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

  • 连接表名称不能以数字开头。

    了解连接表可能失败的原因

语法

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

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

Raster Catalog Layer; Mosaic Layer; Raster Layer; Table View
in_field

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

Field
join_table

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

Raster Catalog Layer; Mosaic Layer; Raster Layer; Table View
join_field

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

Field
join_type
(可选)

指定如何处理输入中与连接表中的记录相匹配的记录。

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

代码示例

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

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.MakeFeatureLayer_management ( "Habitat_Analysis.gdb/vegtype", "veg_layer")
arcpy.AddJoin_management( "veg_layer", "HOLLAND95", "vegtable.dbf", "HOLLAND95")
arcpy.CopyFeatures_management( "veg_layer", "Habitat_Analysis.gdb/vegjoin")
添加连接 (AddJoin) 示例 2(独立脚本)

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

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

环境

  • 当前工作空间
  • 限定的字段名

许可信息

  • ArcGIS Desktop Basic: 是
  • ArcGIS Desktop Standard: 是
  • ArcGIS Desktop Advanced: 是

相关主题

  • 连接工具集概述
  • 使用图层和表视图
  • 关于连接和关联表

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2018 Esri. | 隐私政策 | 法律声明