我正在设计一个数据库。根据文档,当关系数大于100并且有额外的字段时,我必须设计一个Join Table。我通过具有两个指针值来设计了Join Table

  • 该指针值指向_User。以后我只需要currUser的行。
  • 该指针值是作为实体的另一个表的objectId。我的问题是,如何编写查询以返回queryfortable中此表的对象。

  • 比方说:
    Table _User
    Table Entity
    Table Join ---> objectId   Pointer1(_User)  Pointer2(Event)
    

    看起来像这样:

    ios - 如何使用iOS在parse.com上访问指针值的字段?-LMLPHP

    到目前为止,这是我尝试过的:

    首先,我尝试在viewDidLoad中从云中获取被邀请用户的数组,然后在queryForTable中进行尝试:
        PFQuery *query = [PFQuery queryWithClassName:@"Event"];
        [query whereKey:@"objectId" containedIn:_inviteList];
    

    但是我需要访问_inviteList.objectId,这是不可能的!

    我试图使用innerQuerry或关系查询。但是当我刚开始学习解析时,我无法实现这一点。
    PFUser *friendPointer = [PFUser currentUser];
    PFQuery *query2 =  [PFQuery queryWithClassName:@"Event"];
    [query2 whereKey:friendPointer containedIn:_inviteList];
    return query2;
    

    这对我也不起作用。
        PFQuery *innerQuery = [PFQuery queryWithClassName:@"Invite"];
        [innerQuery whereKey:@"invitedUser" equalTo:[PFUser currentUser]];
    
        query = [PFQuery queryWithClassName:@"Event"];
        [query whereKey:@"user" matchesQuery:innerQuery];
        return query;
    

    如果有人可以帮助我编写此查询或重新设计表以访问此查询,我将不胜感激。

    最佳答案

    请尝试此代码并给我评论

    PFUser *user = [PFUser currentUser];
    PFQuery *query = [PFQuery queryWithClassName:@"Invite"];
    [query whereKey:@"invitedUser" equalTo:user];
    [query includeKey:@"invitedUser"];
    [query includeKey:@"eventId"];
    [query orderByDescending:@"updatedAt"];
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
     {
         if (error == nil)
         {
             for (PFObject *underobject in [objects reverseObjectEnumerator])
             {
                 PFUser *user1 = underobject[@"invitedUser"];
                 NSLog(@"invitedUser is :%@",user1);
             }
         }
    }];
    

    关于ios - 如何使用iOS在parse.com上访问指针值的字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32663631/

    10-11 19:47