1

さまざまなエンティティに対してNSPredicateを作成したいと思います。これが私のコアデータベースです。

ここに画像の説明を入力してください

簡単にするために、これは私がすべきクエリです。

Select c.c_name From Company c, Person p Where c.c_id = p.cu_company_id

上記のクエリのような結果を達成したい場合、述語はどのように表示されるのか疑問に思いました。

4

1 に答える 1

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];

会社の配列を取得したら、それをループして会社の名前を取得できます。

于 2013-01-10T16:15:14.767 に答える