首页 > 解决方案 > 如何将 Kusto 查询与 2 个表列进行比较?

问题描述

如何检查 ProductLine 的 2 个字段是否与 dynTable 中的 2 个字段完全匹配?条件:如果 PName 与 Name 匹配,并且 IF Cat 与 dynTable 中的 Category 匹配

因此,基本上我们需要使用名为 ProductLine 的表中的信息来遍历 dynTable 的各项。

| PName | Cat | Info
----------------------
| A     | X   | 123
| B     | Y   | 456
| C     | Z   | 789
----------------------
let dynTable = 
    print myDynamicValue = dynamic(
        [
        {
            "Name": "X",
            "Category": "Y"
        },
        {
            "Name": "A",
            "Category": "B"
        },
        {
            "Name": "A",
            "Category": B"
        }
        ]) 
    | mvexpand myDynamicValue 
    | evaluate bag_unpack(myDynamicValue);
dynTable

标签: azurekqlazure-monitoring

解决方案


您可以使用join运算符加入两列:https ://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/joinoperator?pivots=azuredataexplorer

datatable(Name:string, Category:string)
[
    "X", "Y", 
    "A", "B", 
    "A", "B", 
]
| join (datatable(PName:string, Cat:string, Info:string)
[
    'A', 'X', 123,
    'B', 'Y', 456,
    'C', 'Z', 789,
]) on $left.Name == $right.PName and $left.Category == $right.Cat

推荐阅读