使用解析加入两个表

Hee*_*ena 5 objective-c ios parse-platform

我在parse.com上有一个数据库

在哪里我有一个叫做的课 UserDetail

在那个类中,我有一个名为Field的数组 occupationid

对于这个专栏中,我有一个叫做另一个类Occupation,其中,列都是这样 occupationid,occupationname

现在我想根据存储的内容UserDetailoccupation类中获取所有数据以及所有数据occupationidUserDetail


UserDetail

用户名--contidid - 详细信息

Jhon - ["1","3","4"] - ajfdkaldjlajsdkfjaldkf


Occupation

占领 - 占领

1 - 会计师

2 - 律师

3 - 画家

4 - 作家

像明智的.

我已经阅读了该文档并且我已经PFRelation阅读了但是没有得到如何应用我的情况来获取这种数据.

我也尝试过

    PFQuery *getuserdetail = [PFQuery queryWithClassName:@"UserDetail"];

    [getuserdetail orderByAscending:@"celebid"];

    PFQuery *getoccupation = [PFQuery queryWithClassName:@"Occupation"];
    [getoccupation whereKey:@"occupationid" matchesKey:@"occupationid" inQuery:getuserdetail];
Run Code Online (Sandbox Code Playgroud)

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

UPDATE

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

我创建了一个类Relation中的UserDetail类,要求我添加occupationidoccupation

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

1>当我尝试为不同的用户添加相同的占领时,它会为同一个创建两行occupationid.这意味着对于具有相同职业的两个用户,它在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]];
Run Code Online (Sandbox Code Playgroud)

occupationid ="(<00000000>.(null) - >职业)";

Occupation类名称在哪里是 occupation列名.我试图与编辑列名occupationoccupationname它是否越来越模糊性.但那也行不通.

lxt*_*lxt 5

我认为您会感到有些困惑,因为您正在考虑使用“正常”的类似SQL的数据库来解析Parse。我之所以这样说,是因为从您编写的内容来看,您的occupationid字段似乎是多余的(因为Parse会自动为所有对象分配唯一的ID)。您可以使用PFRelation将职业与用户相关联,如下所示:

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

这将someUser在该键下设置一个指针occupation

但是,您可能已经发现(也许是为什么不确定如何PFRelation正确应用),默认情况下, Parse在查询时不会获取相关对象。您需要明确地告诉Parse执行此操作。

为此,您可以使用includeKey:方法。因此,要查询用户并同时获取其职业(假设您将职业设置为PFRelation),可以执行以下操作:

PFQuery *query = [PFQuery queryWithClassName:@"UserDetail"];
[query includeKey:@"occupation"];
[query findObjectsInBackground... etc 
Run Code Online (Sandbox Code Playgroud)

我最好的建议是不要尝试像MySQL或类似的东西来解析Parse,因为它的工作方式完全不同。我发现Parse的文档非常有用且清晰,因此也许在那里也值得一看。