Соединение полей (Управление данными)

Краткая информация

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

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

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

  • Значением Входной таблицы может быть класс пространственных объектов (включая шейп-файл) или таблица.

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

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

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

  • Соединения могут основываться на полях типа текст, дата или числовых.

  • Соединения, основанные на текстовых полях, чувствительны к регистру.

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

  • При присоединении к входной таблице поля из присоединяемой таблицы с типом глобального идентификатора Global ID или идентификатора объекта Object ID передаваться не будут.

    Значение Входное поле соединения и значение Поле соединяемой таблицы могут иметь разные имена полей.

  • Если поле соединения имеет то же имя, что и поле из входной таблицы, к имени поля соединения будет добавлено _1 (или _2, или _3 и т. д.), чтобы сделать его уникальным.

  • Если для параметра Метод переноса задана опция Выбрать поля переноса, а значения полей в параметре Поле соединяемой таблицы не уникальны, будет использоваться только первое встреченное значение. Чтобы учесть значения, отличные от первого вхождения (соединение "один ко многим"), установите для параметра Метода переноса значение Использовать сопоставление полей. Чтобы выполнить соединение "один ко многим", значение параметра Входная таблица должно содержать поле идентификатора объекта Object ID и находиться в той же рабочей области, что и значение параметра Присоединяемая таблица.

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

    • Добавляйте и удаляйте поля из списка полей, изменяйте порядок и переименовывайте поля.
    • Тип данных выходного поля по умолчанию будет таким же, как тип данных первого входного поля (того имени), которое он находит. Вы можете изменить тип данных на другой допустимый тип.
    • Используйте действие, чтобы определить, как значения из одного или нескольких входных полей будут объединены в одно выходное поле. Доступны следующие действия: Первое, Последнее, Соединить, Сумма, Среднее, Медиана, Режим, Минимум, Максимум, Стандартное отклонение и Число.
    • При использовании действия Соединить, вы можете задать разделитель, например, точку или другой символ. Щелкните начало текстового поля Разделитель, чтобы добавить символы-разделители.
    • Стандартное отклонение не является допустимым параметром для одиночных входных значений.
    • Используйте кнопку Фрагмент текста в исходных текстовых полях, чтобы выбрать, какие символы из входного значения будут извлечены в поле вывода. Чтобы получить доступ к кнопке Фрагмент текста, наведите курсор на текстовое поле в списке входных полей, затем укажите начальную и конечную позиции символов.
    • Поля также можно сопоставить, используя скрипты Python.

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

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

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

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

  • Если результаты соединения неполные или не похожи на ожидаемые, проверьте, проиндексированы ли входное поле и поле соединения. Если поля не проиндексированы, попробуйте добавить индекс. Если поля уже проиндексированы, попробуйте удалить и повторно добавить индекс, чтобы устранить проблемы с индексом. Используйте параметр Индексировать соединяемые поля для управления индексами при запуске инструмента.

Параметры

ПодписьОписаниеТип данных
Входная таблица

Таблица или класс пространственных объектов, к которому будет присоединена таблица.

Mosaic Layer; Raster Layer; Table View
Входное поле

Поле входной таблицы, на котором будет основано соединение.

Field
Соединяемая таблица

Таблица, которая будет присоединена к входной таблице.

Mosaic Layer; Raster Layer; Table View
Соединение полей

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

Field
Перенос полей
(Дополнительный)

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

Field
Метод переноса
(Дополнительный)

Указывает, как объединяемые поля и типы полей будут перенесены в выходные данные.

  • Выбрать поля для переносаПоля и типы полей из соединяемой таблицы будут перенесены в выходные данные. Используется по умолчанию.
  • Используйте сопоставление полейПеренос полей и типов полей из соединяемой таблицы в выходные данные будет контролироваться параметром сопоставления Список полей.
String
Сопоставление полей
(Дополнительный)

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

Используйте список полей для добавления, удаления, переименования и изменения порядка полей, а также для изменения других свойств полей.

Список полей также может использоваться для объединения значений из двух или более входных полей в одно выходное.

Field Mappings
Индексировать соединяемые поля
(Дополнительный)

Определяет, будут ли добавлены или заменены индексы атрибутов для входного поля и поля соединения.

  • Не добавлять индексыАтрибутивные индексы добавляться не будут. Используется по умолчанию.
  • Добавить атрибутивный индекс для полей, у которых нет существующего индексаАтрибутивный индекс будет добавлен для любого поля, у которого нет индекса. Существующие атрибутивные индексы будут сохранены.
  • Заменить индексы для всех полейАтрибутивный индекс будет добавлен для любого поля, у которого нет индекса. Существующие атрибутивные индексы будут заменены.
String

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

ПодписьОписаниеТип данных
Обновленная входная таблица

Обновленный входной набор данных.

Table View; Raster Layer; Mosaic Layer

arcpy.management.JoinField(in_data, in_field, join_table, join_field, {fields}, {fm_option}, {field_mapping}, {index_join_fields})
ИмяОписаниеТип данных
in_data

Таблица или класс пространственных объектов, к которому будет присоединена таблица.

Mosaic Layer; Raster Layer; Table View
in_field

Поле входной таблицы, на котором будет основано соединение.

Field
join_table

Таблица, которая будет присоединена к входной таблице.

Mosaic Layer; Raster Layer; Table View
join_field

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

Field
fields
[fields,...]
(Дополнительный)

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

Field
fm_option
(Дополнительный)

Указывает, как соединяемые поля и типы полей будут перенесены в выходные данные.

  • NOT_USE_FMПоля и типы полей из соединяемой таблицы будут перенесены в выходные данные. Используется по умолчанию.
  • USE_FMПеренос полей и типов полей из соединяемой таблицы в выходные данные будет контролироваться параметром field_mapping.
String
field_mapping
(Дополнительный)

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

Используйте список полей для добавления, удаления, переименования и изменения порядка полей, а также для изменения других свойств полей.

Список полей также может использоваться для объединения значений из двух или более входных полей в одно выходное.

В Python используйте класс FieldMappings для задания этого параметра.

Field Mappings
index_join_fields
(Дополнительный)

Определяет, будут ли добавлены или заменены индексы атрибутов для входного поля и поля соединения.

  • NO_INDEXESАтрибутивные индексы добавляться не будут. Используется по умолчанию.
  • NEW_INDEXESАтрибутивный индекс будет добавлен для любого поля, у которого нет индекса. Существующие атрибутивные индексы будут сохранены.
  • REPLACE_INDEXESАтрибутивный индекс будет добавлен для любого поля, у которого нет индекса. Существующие атрибутивные индексы будут заменены.
String

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

ИмяОписаниеТип данных
out_layer_or_view

Обновленный входной набор данных.

Table View; Raster Layer; Mosaic Layer

Пример кода

JoinField, пример 1 (окно Python)

Пример скрипта окна Python для использования функции JoinField в режиме прямого запуска.

import arcpy
arcpy.env.workspace = "C:/data/data.gdb"
arcpy.management.JoinField("zion_park", "zonecode", "zion_zoning", "zonecode", 
                           ["land_use", "land_cover"])
JoinField, пример 2 (автономный скрипт)

На этом автономном скрипте Python показана функция JoinField, которая используется для присоединения таблицы к классу пространственных объектов и включает только два поля из соединяемой таблицы.

# PermanentJoin.py
# Purpose: Join two fields from a table to a feature class 

# Import system modules
import arcpy

# Set the current workspace 
arcpy.env.workspace = "c:/data/data.gdb"

# Set the local parameters
inFeatures = "zion_park"
joinField = "zonecode"
joinTable = "zion_zoning"
fieldList = ["land_use", "land_cover"]

# Join two feature classes by the zonecode field and only carry 
# over the land use and land cover fields
arcpy.management.JoinField(inFeatures, joinField, joinTable, joinField, 
                           fieldList)