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

Kusto中NOT IN等效语法问题:查询表1独有记录返回空结果

Kusto中!in语法正确性及查询无结果原因
  • !in是Kusto中合法的否定IN运算符,语法本身没有问题。
  • 查询返回0条结果的常见原因:
    • Table2中存在NULL值:Kusto里IN/!IN处理NULL的逻辑是,只要子查询结果包含NULL,!in的比较结果会是unknown,不会筛选出任何行。这种情况需要先过滤掉Table2中的空值。
    • 数据类型不匹配:Table1和Table2的UniqueEventGuid字段类型不一致(比如一个是字符串,一个是guid类型),导致匹配失败。
    • 数据实际无差异:可能你认为的“孤立记录”实际在Table2中存在,可单独查询验证。

修正后的查询示例

方法1:过滤子查询中的空值

let outliers =
Table2
| where isnotnull(UniqueEventGuid)  // 若字段是字符串类型可用isnotempty
| project UniqueEventGuid;
Table1
| where UniqueEventGuid !in (outliers)
| project UniqueEventGuid

方法2:使用leftanti join(更高效的写法)

Kusto中推荐用leftanti join实现“左表存在、右表不存在”的逻辑,性能通常优于!in:

Table1
| leftanti join (Table2 | project UniqueEventGuid) on UniqueEventGuid
| project UniqueEventGuid

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:25:38