如何构建这个 SUBQUERY NSPredicate?

Posted

技术标签:

【中文标题】如何构建这个 SUBQUERY NSPredicate?【英文标题】:How do I build this SUBQUERY NSPredicate? 【发布时间】:2012-03-26 14:08:12 【问题描述】:

问题是这样的:

我有 3 个实体:ImgThumb、Img 和 BookmarkedItems。它们之间的关系如下:

ImgThumb <-> Img (1 to 1)
Img <->> BookmarkItems (1 to many)

现在,有了一个 ImgThumb 数组,我正在尝试创建一个 NSPredicate 来过滤这些 ImgThumb,如下所示:

我需要所有未添加书签的 ImgThumb。

为了实现这一点,我正在尝试使用 SUBQUERY 构建一个 NSPredicate,如下所示:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"0 != SUBQUERY(image, $x, 0 != SUBQUERY($x.bookmarkItems, $y, $y.@count == 0).@count).@count"];

我的请求失败并出现错误:

Unable to generate SQL for predicate (0 != SUBQUERY(image, $x, 0 != SUBQUERY($x.bookmarkItems, $y, $y.@count == 0).@count).@count) (problem on RHS)

我做错了什么?

【问题讨论】:

【参考方案1】:

您不需要SUBQUERY。我假设您的 fetch 实体是 ImgThumb,在这种情况下您的谓词应该是:

[NSPredicate predicateWithFormat:@"img.bookmarkItems.@count == 0"];

【讨论】:

以上是关于如何构建这个 SUBQUERY NSPredicate?的主要内容,如果未能解决你的问题,请参考以下文章

HIVE SubQuery 表达式同时引用 Parent 和 SubQuery 表达式

使用 Access + Subquery 重新格式化数据

MySQL:我需要帮助Subquery

Orientdb SubQuery Max Date

SPARK闲杂--为什么复用Exchange和subquery

SPARK闲杂--为什么复用Exchange和subquery