核心数据,如何在核心数据中使用内部联接

时间:2016-12-01 13:16:23

标签: ios core-data inner-join

我有两张桌子。一个是companydetail,第二个是favCompany两个都有一个共同的companyID。如何在companydetail中插入companyID的所有favCompany?这是我的代码:

-(NSArray *)getAll_FavCompany
    {
        NSMutableDictionary * userinfo = [[NSUserDefaults standardUserDefaults]objectForKey:@"user_info"];

        NSManagedObjectContext *managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
        [managedObjectContext setParentContext:[TDODataManager sharedManager].managedObjectContext];
        NSManagedObjectContext *mainManagedObjectContext = [managedObjectContext parentContext];

        NSFetchRequest *fetch_company = [NSFetchRequest fetchRequestWithEntityName:@"Tbl_companyFav"];
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"companyid = %@ AND loginuserid = %@", [userinfo objectForKey:@"user_id"]];
        [fetch_company setPredicate:predicate];


        NSError *error = nil;
        NSArray *result = [mainManagedObjectContext executeFetchRequest:fetch_company error:&error];
        return result;

    }

我想我需要在上面的代码中使用relationshipKeyPathsForPrefetching,但我不确定。

1 个答案:

答案 0 :(得分:0)

您无法在coreData中执行类似sql的连接操作,您必须使用NSPredicate。

检查此链接: joins in coredata using Objective C

它可能对你有所帮助。