2016-12-01 50 views
0

我有兩個表。一個是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喜歡,但我不能肯定。

+0

查看鏈接的問題,但是如果您用「表」和「連接」和「選擇」的方式來思考,那麼您就會誤解核心數據。它不是一個數據庫。它是一個對象持久性引擎。你應該這樣想,就像你想到在內存中有一堆指向對方的對象一樣。它只能處理比內存大得多的對象圖。有些問題有助於反對持久性。有些人更喜歡數據庫。只是不要混淆兩者。 –

回答

0

您不能像coreData中的sql那樣執行連接操作,您必須使用NSPredicate。

檢查此鏈接: joins in coredata using Objective C

它可以幫助你。

+0

我無法理解。 –

+0

你檢查了那個鏈接嗎? –