核心数据 - 如何使用其他实体的过滤器获取结果

时间:2014-07-02 18:48:41

标签: ios xcode sqlite core-data

我想从实体中获取结果,并使用来自其他实体的属性过滤结果。

我有2个实体:

用户{USER_ID,名字,姓氏}

UsersPhoneNumbers {phone_id,user_id,phone_number}

SQL中的

应该如下所示:

select * from Users where Users.user_id in (select user_id from UsersPhoneNumbers where phone_number = '+972-54-...')

1 个答案:

答案 0 :(得分:0)

您可能希望在User实体和UsersPhoneNumbers之间添加关系。

即。它看起来像这样:

Users{user_id,first_name,last_name,phone_number}

UsersPhoneNumbers{phone_id,user,phone_number}

然后根据这种关系使用获取请求:

NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Users"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"phone_number.phone_number like[cd] %@",  @"+972-54*"];
NSArray* users = [managedObjectContext executeFetchRequest:fetchRequest error:nil];