You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kusto Query中匹配两表UserId并扩展表1字段

在Kusto中实现类似Excel VLOOKUP的表关联操作

要实现你需要的表字段匹配扩展,Kusto里主要用join运算符或lookup函数,以下是两种具体实现方式:

方法1:使用join运算符

join是Kusto中关联表的核心运算符,支持多种关联类型,比如leftouter(对应Excel VLOOKUP的左匹配,找不到匹配项时补充字段为null)、inner(只保留两边都有匹配的行)。

假设你的表1名为Table1,表2名为Table2,关联字段是Table1.UserId_s和Table2.Id_s,示例代码如下:

// 构造示例表2数据(替换为你的实际表名)
let Table2 = datatable(Id_s:string, UserPrincipalName_s:string, Country_s:string)
[
    "5da0e439-54cb-4607-9ef5-0a1ace71e93e", "Max.Power@company.com", "South Africa",
    "755dbf3a-5f57-4d93-a245-e8c2ab0baa6e", "Me.Myselft@company.com", "United Kingdom"
];

// 构造示例表1数据(替换为你的实际表名)
let Table1 = datatable(UserId_s:string, OtherColumn:string)
[
    "5da0e439-54cb-4607-9ef5-0a1ace71e93e", "Data1",
    "755dbf3a-5f57-4d93-a245-e8c2ab0baa6e", "Data2",
    "some-random-id", "Data3"
];

// 左关联:保留Table1所有行,匹配不到则补充字段为null
Table1
| join kind=leftouter Table2 on $left.UserId_s == $right.Id_s
// 移除重复的Id_s字段(可选,根据需要调整)
| project-away Id_s

方法2:使用lookup函数

lookup函数更贴近Excel VLOOKUP的使用逻辑,专门用于从另一个表中查找并补充字段,默认是左匹配行为,语法更简洁:

// 构造示例表数据
let Table2 = datatable(Id_s:string, UserPrincipalName_s:string, Country_s:string)
[
    "5da0e439-54cb-4607-9ef5-0a1ace71e93e", "Max.Power@company.com", "South Africa",
    "755dbf3a-5f57-4d93-a245-e8c2ab0baa6e", "Me.Myselft@company.com", "United Kingdom"
];

let Table1 = datatable(UserId_s:string, OtherColumn:string)
[
    "5da0e439-54cb-4607-9ef5-0a1ace71e93e", "Data1",
    "755dbf3a-5f57-4d93-a245-e8c2ab0baa6e", "Data2",
    "some-random-id", "Data3"
];

// 直接查找匹配字段并补充
Table1
| lookup Table2 on UserId_s == Id_s

关键说明

  • 如果需要只保留两边都匹配的行,把join的kind=leftouter改成kind=inner即可;
  • lookup函数默认是左匹配,若要限制只保留匹配行,可以加参数kind=inner:lookup kind=inner Table2 on UserId_s == Id_s;
  • 替换示例中的Table1、Table2为你实际使用的表名即可。

内容的提问来源于stack exchange,提问作者Pardu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 22:35:08