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

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

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

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

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

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

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

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

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

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

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

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

  • При соединении с входной таблицей из соединяемой таблицы не будут переноситься поля с типом 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)

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