Я хочу выбрать несколько столбцов в нескольких временных таблицах. Итак, мне нужно выбрать столбцы с псевдонимом таблицы в KQL.
Пример в ANSI SQL:
Select a.col1,b.col2 from a inner join b on a.id = b.id
Пример в KQL:
let TableA = external_table('table1')
| take 100
let TableB = external_table('table2')
| take 100
TableA
| join kind=inner (TableB) on id
| project TableA.id,TableB.col2
Я столкнулся с ошибкой, как показано ниже:
Как я могу изменить запрос KQL, чтобы устранить эту ошибку. Выбор нескольких столбцов из нескольких таблиц в KQL.
Вы пробовали это:
РЕДАКТИРОВАТЬ 1
let TableA = external_table('table1')
| take 100
| project TableAId = id, TableACol2 = col2;
let TableB = external_table('table2')
| take 100
| project TableBId = id, TableBCol2 = col2;
TableA
| join kind=inner (TableB) on $left.TableAId == $right.TableBId
| project TableAId, TableBId, TableACol2, TableBCol2
Здесь вы явно переименовываете столбцы идентификаторов, чтобы повторно использовать их в результирующем JOIN
.
Я попробовал, но некоторые имена столбцов являются общими для обеих таблиц. Поэтому мне также нужно указать имя таблицы
Как я уже сказал, имена столбцов, общие для обеих таблиц, будут переименованы, например, id2 и т. д. Когда вы выполняете запрос без строки проекта, вы можете видеть эти имена и ссылаться на них. TableA.Id не работает.
@Rasith Я изменил свой пост, добавив немного больше деталей. Просто спроецируйте это так, как я показал в своем посте. Затем вы можете повторно использовать все проецируемые имена столбцов.
Спасибо, что ответили на мой вопрос и поддержали.
Обычно общие столбцы получают разные имена, например id2 и col22 или что-то в этом роде. Тогда вы можете ссылаться на эти новые имена.