我想了解一下我可以根据第三级表结果从我的表中获取数据的查询。这是详细信息。
我想在Table1上执行查询,并希望在表4的基础上得到结果 - >表3 - >表2 - >表1.我的意思是我想在表4中找到“A”并且在结果的基础上我希望表3中的所有内容都是“A”,然后表2中的所有表3都找到了表2然后在那里结果表1中的所有内容。那么它是如何可能的:)。
我知道我可以通过调用单独的查询来做到这一点。但如果可能的话,我想要简短的方法。
提前感谢谁解决了我的问题。
答案 0 :(得分:0)
您可以尝试使用BoltsFramework。它是由Parse
设计的。
螺栓包括:
“任务”,可以更复杂地组织复杂的异步代码 管理。任务有点像JavaScript承诺,但可用 适用于iOS和Android。
答案 1 :(得分:0)
好的,所以我想我找出了你的数据模式:
您错过的是非常有用的include
方法:因此here是iOS的文档和Android的here。
在伪代码中,它看起来像这样:
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
看看这个thread,这是非常好的表述。 Kind of the same idea for iOS 如果您对此感兴趣,请参阅blog post of Parse关于此主题
答案 2 :(得分:0)
我做了一些实验,我已经对它进行了排序,如果我们进入第3级,我们只能查询到第二级,那么我们将获得异常。这就是我在做的事情。
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来获取数据。