Добавить соединение (Управление данными)

Сводка

Соединяет слой с другим слоем или таблицей на основе значений общего поля. Поддерживаются векторные слои, представления таблиц и растровые слои с поддерживаемой таблицей атрибутов.

Записи из Соединяемой таблицы сопоставляются с записями во Входной таблице. Соответствие делается, если значения поля входной соединяемой таблицы и поля присоединенной таблицы равны. Соединение является временным.

Иллюстрация

Добавить соединение

Использование

  • Входными данными должен быть векторный слой, представление таблицы или растровый слой с таблицей атрибутов.

  • Если входные данные представлены классом пространственных объектов или путем к набору данных, этот инструмент будет автоматически создавать и возвращать новый слой с результатом примененного инструмента.

  • Записи из Соединяемой таблицы могут соответствовать нескольким записям входного слоя или представления таблицы.

  • При соединении таблиц по умолчанию сохраняются все записи. Если у записи в целевой таблице нет соответствия в соединяемой таблице, во всех присоединенных полях этой записи будут стоять нулевые значения.

    Example of keeping all records with a join

    Если выбрать опцию с только сопоставленными записями, то из итоговой целевой таблицы будут удалены все записи, которые не были сопоставлены. Если целевая таблица была атрибутивной таблицей слоя, то объекты слоя, для которых не нашлось соответствующих записей в соединяемой таблице, на карте показаны не будут.

    Example of keeping only matching records with a join

  • Входной слой или представление таблицы должны иметь поле ObjectID. Присоединенная таблица не обязательно должна содержать поле ObjectID.

  • Такие свойства полей, как псевдонимы, видимость и форматирование чисел, сохраняются и после добавления либо удаления соединения.

  • Если соединение с таким именем таблицы уже существует (например, при соединении слоя А с таблицей В), повторный запуск инструменты для соединения с таблицей В приведет к отображению предупреждения о том, что соединение уже существует.

  • Соединение существует только во время сессии. Чтобы сохранить соединение для использования в другой сессии, сохраните слой в файл слоя с помощью инструмента Сохранить слой в файл (Save Layer To File). Это применяется только к слоям, представления таблицы нельзя сохранять таким образом.

  • В результирующем слое или представлении таблицы поля из входного слоя или представления таблицы будут иметь префикс, состоящий из имени входных данных и точки (.), а все поля из соединяемой таблицы будут иметь префикс по умолчанию, состоящий из имени соединяемой таблицы и точки.

    • Например, присоединение landuse, с полями A и B к lookup_tab, с полями C и D, приведет к созданию слоя или представления таблицы со следующими полями: landuse.A, landuse.B, lookup_tab.C и lookup_tab.D.
    • Для классов объектов покрытий и таблиц INFO, разделителем имени поля или таблицы является двоеточие (:), а не точка.

  • Чтобы создать постоянное соединение, можно воспользоваться инструментом Присоединить поле. Другим способом сделать соединение постоянным является сохранение Присоединенного векторного слоя в новый класс пространственных объектов или Присоединенного представления таблицы в новую таблицу. При сохранении результатов в новом классе объектов или таблице можно использовать параметр среды Полноценные имена полей, чтобы контролировать, будут ли имена соединяемых выходных полей подходить имени таблицы, из которой взято поле.

  • Производительность может повысить индексирование полей в входном слое или представлении таблицы и Соединяемая таблица, на которой будет основано соединение. Индексация выполняется с помощью инструмента Добавить атрибутивный индекс.

  • Если поля входного слоя или представления таблицы были изменены (переименованы или скрыты) с использованием инструментов Создать векторный слой или Создать представление таблицы (параметр Информация поля), эти изменения поля не будут перенесены в выходной соединенный слой или представление таблицы.

  • Определяющий запрос Соединяемой таблицы будет применен ко входному слою или представлению таблицы. Определяющий запрос можно удалить с помощью инструмента Удалить соединение, или можно вручную удалить определяющий запрос из слоя.

  • Инструмент Проверить соединение можно использовать для проверки соединения между двумя слоями или таблицами, это позволит определить, есть ли у слоев или таблиц допустимые имя полей и поля Object ID, будут ли в ходе соединения сопоставленные записи, тип кардинальности (один-к-одному или один-ко-многим) и другие свойства соединения.

    Для простоты использования кнопка для проверки соединения доступна в диалоговом окне инструмента.

Синтаксис

AddJoin(in_layer_or_view, in_field, join_table, join_field, {join_type})
ParameterОбъяснениеТип данных
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

Производные выходные данные

NameОбъяснениеТип данных
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: Да

Связанные разделы