さまざまなエンティティに対してNSPredicateを作成したいと思います。これが私のコアデータベースです。
簡単にするために、これは私がすべきクエリです。
Select c.c_name From Company c, Person p Where c.c_id = p.cu_company_id
上記のクエリのような結果を達成したい場合、述語はどのように表示されるのか疑問に思いました。
さまざまなエンティティに対してNSPredicateを作成したいと思います。これが私のコアデータベースです。
簡単にするために、これは私がすべきクエリです。
Select c.c_name From Company c, Person p Where c.c_id = p.cu_company_id
上記のクエリのような結果を達成したい場合、述語はどのように表示されるのか疑問に思いました。
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];
会社の配列を取得したら、それをループして会社の名前を取得できます。