Добавить соединение (Инструменты Управление данными)
Краткая информация
Соединяет слой с другим слоем или таблицей на основе значений общего поля. Поддерживаются векторные слои, представления таблиц и растровые слои с поддерживаемой таблицей атрибутов.
Записи из значения параметра Соединяемая таблица сопоставляются с записями в значении параметра Входная таблица. Сопоставление происходит, когда значения входного поля и поля соединения равны. Соединение является временным.
Иллюстрация

Использование
Значением параметра Входная таблица должен быть векторный слой, представление таблицы или растровый слой с таблицей атрибутов. Если используется путь к данным, слой будет создан при помощи соединения. Соединение всегда будет находиться в слое, а не в данных.
Для создания постоянного соединения примените инструмент Соединение полей или используйте соединенный слой в качестве входных данных для одного из следующих инструментов: Копировать объекты, Копировать строки, Экспорт объектов или Экспорт таблицы. При сохранении результатов в новый класс объектов или таблицу можно использовать параметр среды Поддержка полноценных имен полей, чтобы контролировать, будут ли имена присоединенных выходных полей уточняться именем таблицы, из которой получено поле. Псевдонимы полей сохраняются из слоя в выходные данные, за исключением случаев, когда выходные данные являются шейп-файлом.
Используйте инструменты Создать слой запроса, Создать представление базы данных или Создать слой запроса агрегации для оптимизации производительности соединения и получения дополнительных возможностей, когда вы хотите объединить многопользовательские базы геоданных или базы данных SQLite.
Если входные данные представлены классом пространственных объектов или путем к набору данных, этот инструмент будет создавать и возвращать новый слой с результатом примененного инструмента.
Если кардинальность один-ко-многим используется при соединении, результат соединения можно увидеть в таблице атрибутов, где сообщение с предупреждением укажет на дублирование поля Object ID. Так как множество инструментов геообработки не поддерживают данные с дублированными Object ID, и результаты обработки таких данных могут быть неожиданными, сначала рекомендуется скопировать присоединяемый слой в новый класс объектов с помощью инструмента Экспорт объектов. Затем используйте новый класс объектов в качестве входных данных для инструментов геообработки.
Дополнительно задайте параметру Операция соединения значение Соединение один-к-первому, чтобы предотвратить дублирование ID объектов.
Параметр Операция соединения позволяет вам настроить кардинальность соединения, когда входная запись соответствует нескольким записям присоединяемой таблицы. По умолчанию инструмент будет использовать операцию соединения один-ко-многим, если она поддерживается источником данных входной и присоединяемой таблиц. Соединения один-ко-многим поддерживаются, когда входная и присоединяемая таблицы находятся в одной и той же базе данных формата файловой, мобильной, многопользовательской базы геоданных и виртуальной рабочей области. Наборы данных сервис-ориентированных версий не поддерживают соединения один-ко-многим.
Операция соединения один-к-первому будет использовать первое совпадение в таблице присоединения, что может привести к разным совпадениям при каждом запуске соединения. Соединения один-к-первому не чувствительны к регистру; соединения один-ко-многим чувствительны к регистру.
В следующих таблицах приведены возможные результаты выполнения соединения с различными входными данными.
В первой таблице показано соединение один-ко-многим. Сохранение только совпадающих записей не имеет эффекта, так как все записи имеют совпадения.
Входная таблица
Соединяемая таблица
Результат
Входное поле
Тип
Поле соединения
Значение
Входное поле
Тип
Поле соединения
Значение
1
A
1
100
1
A
1
100
2
B
2
200
2
B
2
200
1
300
1
A
1
300
2
400
2
B
2
400
Пример добавления соединения: соединение один ко многим, когда каждая таблица имеет поле Object ID
Во второй таблице используется присоединяемая таблица без поля Object ID; возможно только соединение один-к-первому. Соединение один-к-первому также является единственным возможным, если каждая из таблиц находится в разных рабочих областях. Соединение один-к-первому не учитывает регистр.
Входная таблица
Соединяемая таблица
Результат
Входное поле
Тип
Поле соединения
Значение
Входное поле
Тип
Поле соединения
Значение
1
A
1
100
1
A
1
100
2
B
2
200
2
B
2
200
3
300
4
400
Пример добавления соединения: соединение типа один-к-первому, когда в какой-либо таблице нет поля Object ID
В последней таблице входная таблица содержит больше записей, чем присоединяемая таблица. При сохранении всех записей будут сохранены все совпадающие записи плюс записи из входной таблицы, которые не совпадают.
Входная таблица
Соединяемая таблица
Результат
Входное поле
Тип
Поле соединения
Значение
Входное поле
Тип
Поле соединения
Значение
1
A
1
100
1
A
1
100
2
B
2
200
2
B
2
200
3
C
1
300
1
A
1
300
4
D
2
400
2
B
2
400
3
C
<Null>
<Null>
4
D
<Null>
<Null>
Пример добавления соединения: соединение один-ко-многим, когда каждая таблица содержит поле Object ID и отмечен параметр Сохранить все входные записи.
Входная таблица должна содержать поле Object ID для выполнения соединения один-ко-многим и быть в той же рабочей области.
Записи из соединяемой таблицы могут быть сопоставлены более чем с одной записью, если таблица содержит поле Object ID; в противном случае будет выполнено соединение один-к-первому.
При соединении таблиц опцией по умолчанию является сохранение всех записей. Если запись во входной таблице не имеет соответствия в присоединяемой таблице, этой записи присваиваются пустые значения для всех полей, добавленных к входной таблице из присоединяемой таблицы.
Входная таблица
Соединяемая таблица
Результат
Входное поле
Тип
Поле соединения
Значение
Входное поле
Тип
Поле соединения
Значение
1
A
1
100
1
A
1
100
2
B
2
200
2
B
2
200
3
C
1
300
1
A
1
300
4
D
2
400
2
B
2
400
3
C
<Null>
<Null>
4
D
<Null>
<Null>
Если параметр Сохранить все входные записи не отмечен, а запись во входной таблице не имеет соответствия в присоединяемой таблице, эта запись удаляется из итоговых выходных данных. Если входная таблица является атрибутивной таблицей слоя, то объекты слоя, для которых не нашлось соответствующих записей в присоединяемой таблице, на карте показаны не будут.
Входная таблица
Соединяемая таблица
Результат
Входное поле
Тип
Поле соединения
Значение
Входное поле
Тип
Поле соединения
Значение
1
A
1
100
1
A
1
100
2
B
2
200
2
B
2
200
3
300
4
400
Инструмент Вычислить поле обновит первую запись, обнаруженную при использовании слоя один-ко-многим, и пропустит остальные повторяющиеся записи. При редактировании значений полей присоединенного слоя вручную в виде таблицы последнее внесенное изменение сохраняется.
Такие свойства полей, как псевдонимы, видимость и форматирование чисел, сохраняются и после добавления либо удаления соединения.
Соединение сохраняется только на протяжении существования слоя. Слой можно сохранить, сохраняя сеанс ArcGIS Pro или при помощи файла слоя, применив инструмент Сохранить слой в файл.
Чтобы увидеть результаты соединения, созданного инструментом-скриптом, инструмент должен включать слой в качестве производного выходного параметра. Аналогично, чтобы увидеть результаты соединения, параметр Обновленный входной слой или представление таблицы должен быть задан как производный выходной параметр в инструменте-модели.
В результирующей таблице поля будут иметь префикс с именем входной таблицы и точкой (.), а все поля из соединяемой таблицы будут иметь префикс с именем соединяемой таблицы и точкой по умолчанию.
Например, присоединение landuse, содержащей поля
AиB, к lookup_tab, с полямиCиDприведет к созданию слоя или представления таблицы с полямиlanduse.A,landuse.B,lookup_tab.Cиlookup_tab.D.Имена полей в слое должны быть уникальными. Если входная и присоединяемая таблица называются одинаково и находятся в разных рабочих областях, при выполнении соединения создается плохо определенный слой.
Индексирование входного поля и поля соединения может повысить производительность. Если параметр Индексировать соединяемые поля отмечен, к обоим полям будет добавлен атрибутивный индекс. Или каждое соединяемое поле можно проиндексировать при помощи инструмента Добавить атрибутивный индекс.
Если результаты соединения не полные или не похожи на ожидаемые, проверьте, проиндексированы ли входное поле и поле соединения. Если поля не проиндексированы, попробуйте добавить индекс. Если поля проиндексированы, попробуйте удалить и повторно добавить индекс, чтобы устранить проблемы с индексом. Или отметьте параметр Перестроить индексы полей соединения, чтобы удалить существующие индексы и перестроить их.
Если поля входного слоя или представления таблицы были изменены (переименованы или скрыты) при помощи параметра Информация поля в инструментах Создать векторный слой или Создать представление таблицы, эти изменения поля не будут включены в выходной соединенный слой или представление таблицы.
Определяющий запрос присоединяемой таблицы будет применен ко входному слою или представлению таблицы путем добавления нового активного запроса. Предыдущий запрос сохраняется и становится неактивным, чтобы при необходимости запрос можно было отключить в присоединенной таблице. Определяющий запрос можно удалить с помощью инструмента Удалить соединение.
Если в соединяемой таблице есть определяющий запрос, параметр Сохранить все входные записи не будет иметь никакого эффекта. Обновление определяющего запроса вручную путем добавления
or OBJECTID is nullможет исправить это, если это необходимо.Инструмент Проверить соединение можно использовать для проверки соединения между двумя слоями или таблицами, это позволит определить, есть ли у слоев или таблиц допустимые имя полей и поля Object ID, будут ли в ходе соединения сопоставленные записи, тип кардинальности (один-к-одному или один-ко-многим) и другие свойства соединения.
Для простоты использования кнопка для проверки соединения доступна в диалоговом окне инструмента.
Этот инструмент игнорирует выборки входной и присоединяемой таблиц. Инструмент Присоединить поле поддерживает выборки. Чтобы выполнить соединение только с выбранным поднабором, создайте слой выборки и используйте его в качестве входных данных для этого инструмента. Свойства присоединяемого слоя копируются при создании слоя выборки.
Параметры
| Подпись | Объяснение | Тип данных |
|---|---|---|
|
Входная таблица |
Слой или представление таблицы, к которым будет присоединяться таблица соединения. |
Mosaic Layer; Raster Layer; Table View |
|
Входное поле |
Поле входного слоя или представления таблицы, на котором будет основано соединение. |
Field |
|
Соединяемая таблица |
Таблица или представление таблицы, которые будут присоединяться к входному слою или представлению таблицы. |
Mosaic Layer; Raster Layer; Table View |
|
Соединение полей |
Поле соединяемой таблицы, содержащее значения, на которых будет основываться соединение. |
Field |
|
Сохранить все входные записи (Дополнительный) |
Указывает, будут ли включены в результат только записи из входных данных, для которых есть сопоставления в соединяемой таблице, или все записи входного слоя или представления таблицы.
|
Boolean |
|
Индексировать соединяемые поля (Дополнительный) |
Указывает, будут ли индексы атрибутов таблицы добавлены для входного поля и поля соединения.
|
Boolean |
|
Перестроить индексы соединенных полей (Дополнительный) |
Указывает, будут ли индексы входного поля и поля соединения удалены и перестроены.
|
Boolean |
|
Операция соединения (Дополнительный) |
Указывает, будет ли тип соединения один-ко-многим или один-к-первому, если данные имеют кардинальность один-ко-многим. Операции соединения один-ко-многим поддерживаются, когда входная и присоединяемая таблицы находятся в одной и той же базе данных формата файловой, мобильной, многопользовательской базы геоданных и виртуальной рабочей области. Наборы данных сервис-ориентированных версий не поддерживают соединения один-ко-многим. Если значение параметра не указано, операция соединения будет выполняться по принципу один-ко-многим, если он поддерживается; в противном случае операция соединения будет выполняться по принципу один-к-первому.
|
String |
Производные выходные данные
| Подпись | Объяснение | Тип данных |
|---|---|---|
|
Обновленный входной слой или представление таблицы |
Обновленный входной набор данных. |
Table View; Raster Layer; Mosaic Layer |
Параметры среды
Информация о лицензировании
- Basic: Да
- Standard: Да
- Advanced: Да