【问题标题】:NSPredicate SUBQUERY for 1 to many to many relationshipNSPredicate SUBQUERY 用于一对多关系
【发布时间】:2016-08-02 00:51:18
【问题描述】:

我正在尝试构建一个 NSPredicate 来满足给定的关系。我的数据模型如下:University -> College -> Classrooms - ClassroomType

  • 一个大学对象有 1 到多个学院。
  • 一个大学对象有 1 到多个教室。
  • 每个教室都有一个给定的教室类型和一个指定的属性 我有兴趣。

该属性称为typeDescription 我想构建一个查询,它可以为我提供 typeDescription 等于值“computerlab”的所有大学。我可以使用的对象是大学列表。我很确定我需要构建一个 NSPredicate SUBQUERY 但我不太确定如何构建它来满足我的要求。如果有人对构建此查询的正确方法有任何意见,将不胜感激。

【问题讨论】:

  • 您想要的任何结果样本也可以从给定样本的表格中获得。需要更多详细信息
  • 为什么只有大学列表?您可以在任何您想要的实体上运行查询(并映射到所需的结果)

标签: mysql objective-c core-data subquery nspredicate


【解决方案1】:

对于一对多对多的关系,需要嵌套两个 SUBQUERY 子句:

NSPredicate(format:"SUBQUERY(colleges, $c, SUBQUERY($c.classrooms, $room, $room.classroomType.typeDescription == %@).@count > 0).@count > 0","computer lab")

【讨论】:

  • 一对多关系可以使用ANY:"SUBQUERY(colleges, $c, ANY $c.classrooms.classroomType.typeDescription == %@).@count > 0","computer lab"
猜你喜欢
  • 2012-08-27
  • 1970-01-01
  • 2014-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多