我想对不同的实体进行NSPredicate。这是我的核心数据库。
为了简单起见,这是我应该做的查询。
Select c.c_name From Company c, Person p Where c.c_id = p.cu_company_id
现在我想知道如果我想要像上面的查询那样实现结果,我的谓词应该是什么样子。
答案 0 :(得分:1)
假设c_id和cu_company_id是整数,您可以尝试
NSFetchRequest *fr = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
NSError *error;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"cu_company_id == data.company.c_id"];
[fr setPredicate:predicate];
NSArray *persons = [self.managedObjectContext executeFetchRequest:fr error:&error];
一旦你有了人物阵列,你就可以循环通过它并得到这个人的名字。为了实现它的另一种方式
NSFetchRequest *fr = [[NSFetchRequest alloc] initWithEntityName:@"Company"];
NSError *error;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"c_id == data.person.cu_company_id"];
[fr setPredicate:predicate];
NSArray *companies = [self.managedObjectContext executeFetchRequest:fr error:&error];
一旦你有公司阵列,你就可以循环通过它并得到公司的名字。