внутреннее соединение
Вариант inner
соединения похож на стандартное внутреннее соединение из мира SQL. Выходная запись создается каждый раз, когда у записи с левой стороны есть тот же ключ для соединения, что и у записи с правой стороны.
Синтаксис
Леваяtable|
join
kind=inner
[ Указания ] RightTableon
Условия
Дополнительные сведения о соглашениях о синтаксисе.
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
LeftTable | string |
✔️ | Левая таблица или табличное выражение, иногда называемое внешней таблицей, строки которой должны быть объединены. Обозначается как $left . |
Указания | string |
Ноль или более указаний соединения с разделителями пробелами в виде значения имени= , которые управляют поведением операции сопоставления строк и плана выполнения. Дополнительные сведения см. в разделе Подсказки. |
|
RightTable | string |
✔️ | Правильная таблица или табличное выражение, иногда называемое внутренней таблицей, строки которой должны быть объединены. Обозначается как $right . |
Условия | string |
✔️ | Определяет, как строки из LeftTable сопоставляются со строками из RightTable. Если столбцы, которые нужно сопоставить, имеют одинаковые имена в обеих таблицах, используйте синтаксис ON ColumnName. В противном случае используйте синтаксис ON $left. LeftColumn== $right. RightColumn. Чтобы указать несколько условий, можно использовать ключевое слово "и" или разделять их запятыми. Если используются запятые, условия вычисляются с помощью логического оператора "и". |
Совет
Для оптимальной производительности, если одна таблица всегда меньше другой, используйте ее в качестве левой части соединения.
Указания
Имя параметра | Значения | Описание |
---|---|---|
hint.remote |
auto , left , local , right |
См. статью Межкластерный оператор join. |
hint.strategy=broadcast |
Указывает способ совместного использования нагрузки запросов на узлы кластера. | См . статью о присоединении к широковещател |
hint.shufflekey=<key> |
Запрос shufflekey распределяет нагрузку на узлы кластера, используя ключ для секционирования данных. |
См. статью о запросе на перемешивание |
hint.strategy=shuffle |
Стратегический shuffle запрос распределяет нагрузку запросов на узлы кластера, где каждый узел обрабатывает одну секцию данных. |
См. статью о запросе на перемешивание |
Возвращаемое значение
Схема: все столбцы из обеих таблиц, включая соответствующие ключи.
Строки: только совпадающие строки из обеих таблиц.
Пример
let X = datatable(Key:string, Value1:long)
[
'a',1,
'b',2,
'b',3,
'k',5,
'c',4
];
let Y = datatable(Key:string, Value2:long)
[
'b',10,
'c',20,
'c',30,
'd',40,
'k',50
];
X | join kind=inner Y on Key
Выходные данные
Ключ | Значение1 | Key1 | Значение2 |
---|---|---|---|
b | 3 | b | 10 |
b | 2 | b | 10 |
с | 4 | с | 20 |
с | 4 | с | 30 |
k | 5 | k | 50 |
Примечание
- (b,10) с правой стороны соединено дважды: с (b,2) и с (b,3) слева.
- (c,4) с левой стороны соединено дважды: с (c,20) и с (c,30) справа.
- (k,5) слева и (k, 50) справа был соединен один раз.
См. также
- Сведения о других вариантах соединения
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по