使用parsingjoin两个表

我有一个数据库在parse.com

我有一个名为UserDetail

在那个类中,我有一个数组Field,称为occupationid符( occupationid

对于这个专栏,我有另一个Occupation称为Occupation ,其中列像occupationidoccupationname

现在我想从UserDetail获取所有数据以及来自occupation类的所有数据,根据存储在UserDetailoccupationid UserDetail


UserDetail

用户名 – 职业 – 详情

Jhon – [“1”,“3”,“4”] – ajfdkaldjlajsdkfjaldkf


Occupation

职业 – 职业

1 – 会计师

2 – 律师

3 – 画家

4 – 作家

像智者一样。

我已经阅读了文档,关于我阅读的PFRelation但没有得到如何应用在我的情况来获取这种types的数据。

我也试过

  PFQuery *getuserdetail = [PFQuery queryWithClassName:@"UserDetail"]; [getuserdetail orderByAscending:@"celebid"]; PFQuery *getoccupation = [PFQuery queryWithClassName:@"Occupation"]; [getoccupation whereKey:@"occupationid" matchesKey:@"occupationid" inQuery:getuserdetail]; 

有什么build议么? 我必须为其他2,3列做同样的事情。 任何帮助将不胜感激。

UPDATE

数据直接在parse.com DataBrowser上添加,而不是从代码中添加。

我在UserDetail类中创build了一个types为Relation列,它要求我添加occupationidoccupation

当我补充说我面临两个问题

1>当我尝试为不同的用户添加相同的职业ID时,它将为同一occupationid创build两行。 这意味着两个用户有相同的职业,它正在创build两行occupationtable例如。 objectid – 职业 – 职业adfk12 – 1 – 学校老师jdlkfg56 – 1 – 学校老师

2>当我试图从代码中获取它给我错误

 PFQuery *getuserdetail = [PFQuery queryWithClassName:@"UserDetail"]; [getuserdetail orderByAscending:@"celebid"]; [getuserdetail includeKey:@"occupation"]; [getuserdetail whereKey:@"userid" equalTo:[NSString stringWithFormat:@"%d",intuserID]]; 

职业=“(<00000000>。(null) – >职业)”;

其中Occupation是类名, occupation是列名。 我试着用occupation名称来编辑列名occupation ,如果它是模棱两可的。 但是这也不起作用。

我认为你正在变得有些不自在,因为你正在考虑使用“正常的”类似于SQL的数据库来parsing数据。 我之所以这样说,是因为从你写的东西看来,你的occupationid是多余的(因为Parse会自动为所有的对象分配一个唯一的ID)。 您可以使用PFRelation将职业与用户相关联,如下所示:

[someUser setObject:someOccupation forKey:@"occupation"]

这将在关键字occupation下设置一个用户指针。

然而,正如你可能已经发现的(也许你为什么不确定如何正确应用PFRelation )是默认情况下, Parse在查询时不会获取相关的对象。 你需要明确的告诉Parse来做到这一点。

为此,请使用includeKey:方法。 因此,要查询用户并同时获得他们的职位(假设您已将职业设置为PFRelation ),您可以这样做:

 PFQuery *query = [PFQuery queryWithClassName:@"UserDetail"]; [query includeKey:@"occupation"]; [query findObjectsInBackground... etc 

我最好的build议是尽量不要考虑像MySQL或类似的parsing,因为它工作在一个相当不同的方式。 我发现Parse的文档是非常有用和清晰的,所以也许值得一看。