首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >嵌套解析查询到第3层

嵌套解析查询到第3层
EN

Stack Overflow用户
提问于 2016-01-03 13:13:59
回答 3查看 186关注 0票数 0

我想知道一个查询,在这个查询中,我可以根据第三级表的结果从表中获取数据。这是细节。

  1. Table1 ->指针列(Table2)。
  2. 表2->指针列(Table3)。
  3. 表3->指针列(Table4.)

我想在Table1上执行查询,并希望根据表4 ->表3 ->表2 ->表1获得结果。我的意思是在表4中查找"A“,根据结果,我想要表3中的"A”的所有内容,然后在表2中找到所有的表3,然后在表1中找到所有的结果。那么,它是如何可能的:)。

我知道我可以通过调用单独的查询来做到这一点。但如果可能的话,我想要一条捷径。

提前感谢谁解决了我的这个问题。

EN

回答 3

Stack Overflow用户

发布于 2016-01-03 14:00:58

你可以试试BoltsFramework。它是由Parse设计的。

螺栓包括: “任务”,这使得复杂异步代码的组织更易于管理。任务有点像JavaScript的承诺,但对iOS和安卓来说是可用的。

票数 0
EN

Stack Overflow用户

发布于 2016-01-03 14:33:56

好的,我想我想出了你的数据模式:

您错过的是非常有用的include方法:所以这里是iOS的文档,这里是Android的文档。

在伪代码中,如下所示:

代码语言:javascript
运行
复制
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博客文章

票数 0
EN

Stack Overflow用户

发布于 2016-01-04 05:57:03

我做了一些实验,通过这些实验,我们只能查询到二级,如果我们进入第三级,我们就会得到异常。这就是我在做的事。

代码语言:javascript
运行
复制
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) 
{

}

我得到了错误

“查询有太多嵌套查询”

然后我试过这个。

代码语言:javascript
运行
复制
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来获取数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34576909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档