如何在KQL中实现SQL FULL OUTER JOIN的不相交记录查询?
KQL实现两个数据集不相交记录的方案
你的思路完全正确,通过leftanti join与rightanti join的结果做union,就是KQL中实现该需求的标准最佳方式。
具体代码示例
假设两个数据集为TableA和TableB,关联键是Id:
// 获取TableA中不在TableB里的记录 let A_only = TableA | join kind=leftanti (TableB) on Id; // 获取TableB中不在TableA里的记录 let B_only = TableA | join kind=rightanti (TableB) on Id; // 合并两个结果集,得到所有不相交的记录 A_only | union B_only
关键逻辑说明
leftantijoin:返回左表中未在右表找到匹配关联键的所有记录,等价于SQL中的NOT EXISTS或NOT IN逻辑;rightantijoin:返回右表中未在左表找到匹配关联键的所有记录,效果等同于交换左右表后执行leftantijoin;union操作会自动对齐两个结果集的列,缺失的列将填充null,与SQL中FULL OUTER JOIN取不相交部分的行为一致。
内容的提问来源于stack exchange,提问作者LJsec
相关产品推荐
相关产品推荐

