核心数据。加入2个表与多对多的关系?

时间:2013-09-24 09:48:49

标签: core-data join left-join nsfetchrequest right-join

我有2个表,它们之间是多对多的关系。

SQL等价物不存在,因为它要求第三个表将多对多关系拆分为两个一对多关系。

例如,我有两个核心数据实体:带有属性的类别(项目数组)和带有属性的项目(类别数组)。

我需要获取除“空”类别之外的所有类别(当没有此类别的项目时)。

我当前的临时解决方案看起来不正确。我使用NSFetchRequest来获取所有类别。然后我使用for-each从这个数组中删除所有带有空项目数组的类别。

2 个答案:

答案 0 :(得分:1)

为了获得除了空类别之外的所有类别,你可以使用这样的谓词:

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Category"];    
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"items.@count > 0"];
NSArray *categories = [context executeFetchRequest:fetchRequest error:NULL];

答案 1 :(得分:0)

我的解决方案:

[NSPredicate predicateWithFormat:@"ANY items != nil"]