我想知道一个查询,在这个查询中,我可以根据第三级表的结果从表中获取数据。这是细节。
我想在Table1上执行查询,并希望根据表4 ->表3 ->表2 ->表1获得结果。我的意思是在表4中查找"A“,根据结果,我想要表3中的"A”的所有内容,然后在表2中找到所有的表3,然后在表1中找到所有的结果。那么,它是如何可能的:)。
我知道我可以通过调用单独的查询来做到这一点。但如果可能的话,我想要一条捷径。
提前感谢谁解决了我的这个问题。
发布于 2016-01-03 14:00:58
你可以试试BoltsFramework。它是由Parse设计的。
螺栓包括: “任务”,这使得复杂异步代码的组织更易于管理。任务有点像JavaScript的承诺,但对iOS和安卓来说是可用的。
发布于 2016-01-03 14:33:56
好的,我想我想出了你的数据模式:
您错过的是非常有用的include方法:所以这里是iOS的文档,这里是Android的文档。
在伪代码中,如下所示:
Create a query (let's say 'coolQuery') for table 1
Add to this query ('coolQuery') an include with table 2
Add to this query ('coolQuery') an include with table 2.table 3
Add to this query ('coolQuery') an include with table 2.table 3.table 4看看这个线程,它的格式非常好。对于iOS来说也是同样的想法,如果您感兴趣,这里是关于这个主题的Parse博客文章
发布于 2016-01-04 05:57:03
我做了一些实验,通过这些实验,我们只能查询到二级,如果我们进入第三级,我们就会得到异常。这就是我在做的事。
PFQuery *Table4Query = [PFQuery queryWithClassName:@"Table4"];
[vehicleTypeQuery whereKey:@"name" equalTo:@"A"];
PFQuery *Table3Query = [PFQuery queryWithClassName:@"Table3"];
[vehicleQuery whereKey:@"Table4PointerColumn" matchesQuery:Table4Query];
PFQuery *Table2Query = [PFQuery queryWithClassName:@"Table2"];
[Table2 whereKey:@"Table3PointerColumn" matchesQuery:Table3Query];
PFQuery *Table1Query = [PFQuery queryWithClassName:@"Table1"];
[query whereKey:@"Table2PointerColumn" matchesQuery:Table2Query];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
{
}我得到了错误
“查询有太多嵌套查询”
然后我试过这个。
PFQuery *Table3Query = [PFQuery queryWithClassName:@"Table3"];
[vehicleQuery whereKey:@"Table4PointerColumn" equalTo:[PFObject objectWithoutDataWithClassName:@"Table4" objectId:@"kVQvan1E23"]];
PFQuery *Table2Query = [PFQuery queryWithClassName:@"Table2"];
[Table2 whereKey:@"Table3PointerColumn" matchesQuery:Table3Query];
PFQuery *Table1Query = [PFQuery queryWithClassName:@"Table1"];
[query whereKey:@"Table2PointerColumn" matchesQuery:Table2Query];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
{
}这对我来说很好,现在我只需要单独查询Table4来获取数据。
https://stackoverflow.com/questions/34576909
复制相似问题