4

这是我的对象图的相关部分:

Store <-->> Gift <<--> Person <<-->> Tag

我希望能够通过 tag.filtering 属性过滤商店,如下所示:

ANY gifts.person.tags.filtering == YES

但我理解为什么这不起作用,因为限制为一对多键。所以我正在尝试使用一组嵌套的 SUBQUERY 谓词,如下所示:

NSPredicate* filterPredicate = [NSPredicate predicateWithFormat:
   @"(0 != SUBQUERY(gifts, $x, 
     (0 != SUBQUERY($x.person.tags, $y, $y.filtering==YES).@count)).@count)"];

这在运行时失败并出现错误:

"SQLite error code:1, 'no such column: t3.ZFILTERING'"

似乎我在正确的轨道上,在这里,但找不到使用相同语法的任何其他示例。我错过了什么?

4

1 回答 1

7

从我上面的评论:

[NSPredicate predicateWithFormat:@"SUBQUERY(gifts, $x, ANY $x.person.tags.filtering == YES).@count != 0"]

有效,甚至比嵌套的 SUBQUERY 更简单。

于 2013-11-03T06:17:51.693 回答