联结表的核心数据INNER JOIN

时间:2015-03-14 00:57:03

标签: ios xcode sqlite core-data nspredicate

我有两张桌子,并希望INNER JOIN他们。

  • 第一个表格描述了“群组与联系人之间的关系”,
  • 第二个表格是“联系方式”。

“群组与联系人之间的关系”包含两列groupIdcontactId

现在我想获得多个联系方式。

(我知道这不是使用核心数据的本地方式,但是现在我想首先完成这项工作,然后将核心数据更新到适当的结构)

现在我把它分成两个部分:

  • 第一次获取给定一个groupId和
  • 的contactId数组
  • 第二次获取将使用该contactId数组作为谓词来获取contactDetail。

它正在运作!但是,谓词不能处理超过1000,所以如果我得到更多,它就会崩溃。

可以建议我如何设置predicate?任何评论都表示赞赏!

由于

    let appDel : AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
            let moc: NSManagedObjectContext = appDel.managedObjectContext!

            let fetchRequest = NSFetchRequest()


            //3 - set the correct table
            let entity = NSEntityDescription.entityForName("Contact", inManagedObjectContext: moc)
            fetchRequest.entity = entity

            fetchRequest.fetchBatchSize = 20


            // Filter

            var strForPredicate = String()
            strForPredicate = strForPredicate + "id == nil"
            for (var i = 0; i < self.fetchedResult_GroupAndContact.count; i++)
            {
                strForPredicate = strForPredicate + " OR id == \(self.fetchedResult_GroupAndContact[i].contact_id)"
            }

0 个答案:

没有答案