Краткая информация
Присоединяет один слой к другому слою или таблице (где слой – это слой объектов, представление таблицы или растровый слой с таблицей атрибутов растра) на основе общего поля.
Записи в Соединяемой таблице соответствуют записям входного Имени слоя. Сопоставление создается, если входные и выходные соединяемые поля одинаковы. Соединение является временным.
Иллюстрация
Использование
Входными данными должен быть слой объектов, табличный вид или растровый слой с таблицей атрибутов. Входными данными не может быть класс объектов или таблица.
Записи из Соединяемой таблицы могут соответствовать нескольким записям входного слоя или представления таблицы. Более подробно о соединениях типа один-к-одному, один-ко-многим и многие-ко-многим см. в разделе О соединении и связи таблиц.
При соединении таблиц по умолчанию сохраняются все записи. Если у записи в целевой таблице нет соответствия в соединяемой таблице, во всех присоединенных полях этой записи будут стоять нулевые значения.
Если выбрать опцию с только сопоставленными записями, то из итоговой целевой таблицы будут удалены все записи, которые не были сопоставлены. Если целевая таблица была атрибутивной таблицей слоя, то объекты слоя, для которых не нашлось соответствующих записей в соединяемой таблице, на карте показаны не будут.
Соединяемой таблицей может быть любой из следующих типов таблиц: таблица базы геоданных, файл dBASE, таблица INFO или таблица базы данных OLE.
Входной слой или представление таблицы должны иметь поле ObjectID. Соединяемая таблица не обязательно должна содержать поле ObjectID.
Такие свойства полей, как псевдонимы, видимость и форматирование чисел, сохраняются и после добавления либо удаления соединения.
Если соединение с таким именем таблицы уже существует (например, при соединении слоя А с таблицей В), повторный запуск инструменты для соединения с таблицей В приведет к отображению предупреждения о том, что соединение уже существует.
Соединение существует только во время сессии. Чтобы сохранить соединение для использования в другой сессии, сохраните слой в файл слоя с помощью инструмента Сохранить слой в файл. Это применяется только к слоям, представления таблицы нельзя сохранять таким образом.
В результирующем слое или представлении таблицы поля из входного слоя или представления таблицы будут иметь префикс, состоящий из имени входных данных и точки (.), а все поля из соединяемой таблицы будут иметь префикс по умолчанию, состоящий из имени соединяемой таблицы и точки.
- Например, соединение landuse с полями A и B с lookup_tab с полями C и D, приведет к созданию слоя или табличного вида со следующими полями: landuse.A, landuse.B, lookup_tab.C и lookup_tab.D.
- Для классов объектов покрытий и таблиц 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 (Дополнительный) | Устанавливает, что будет сделано с записями входных данных, которые соответствуют записи в соединяемой таблице.
| Boolean |
Пример кода
AddJoin, пример 1 (окно Python)
Пример скрипта Python для выполнения функции AddJoin в с запуском из окна Python.
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: Да