Power Apps Gallery多表关联Filter查询@操作符语法问题
Power Apps 关联表查询@操作符语法问题解决方案
核心结论
你使用@操作符的语法确实存在作用域匹配错误,问题根源是Power Apps的上下文作用域优先级规则。
问题原因拆解
TABLE_A[@PRIMARY_ID]无法运行的原因:表名[@列名]是Power Apps的歧义消除语法,仅适用于当前上下文已存在同名列冲突的场景。在AddColumns的列值计算上下文里直接写TABLE_A[@PRIMARY_ID],会被识别为引用TABLE_A整表的PRIMARY_ID列,而非当前遍历行的对应值,因此语法校验不通过。ThisRecord.PRIMARY_ID返回值不符合预期的原因:Filter函数内部的ThisRecord默认指向Filter当前遍历的TABLE_B行记录,而非外层AddColumns遍历的TABLE_A行,你写的条件实际匹配的是TABLE_B自己的主键值,而非关联TABLE_A的外键值,因此结果不符合要求。
正确实现方案
推荐使用As关键字给外层TABLE_A的遍历上下文定义别名,完全规避作用域冲突,可读性和兼容性都优于@操作符写法:
AddColumns( Sort(TABLE_A, UPDATED_ON, Descending) As OuterTableA, "MyDemoColumn", First( Sort( Filter(TABLE_B, PRIMARY_ID = OuterTableA.PRIMARY_ID), UPDATED_ON, Descending ) ).LATEST_STATE )
如果你确实需要使用@操作符实现,可直接使用全局歧义消除写法:
AddColumns( Sort(TABLE_A, UPDATED_ON, Descending), "MyDemoColumn", First( Sort( Filter(TABLE_B, PRIMARY_ID = [@PRIMARY_ID]), UPDATED_ON, Descending ) ).LATEST_STATE )
内容的提问来源于stack exchange,提问作者J D
相关产品推荐
相关产品推荐

