如何在解析android中进行连接查询

时间:2015-03-24 17:56:15

标签: android parse-platform

我在parse.com上为我的Android App创建了5个表:

  1. users(姓名,密码,电话等)
  2. list(列表名称,注释,图像,用户)

  3. subscribe_user_list(列表,用户)
  4. favorite_user_list(列表,用户)
  5. contacts(contact_name,number,list)

每个list都有多个contacts。用户可以订阅列表并将列表标记为收藏。
我想从list表中获取用户已订阅的所有列表以及每个列表的以下详细信息:
1.订阅列表的用户总数
2.将列表标记为收藏的用户总数
3.该名单中的联系总人数。

在使用多个连接查询的SQL中很容易实现这一点,但是,我不知道如何在解析中的单个查询中获取此信息。是否有人可以帮助我...

2 个答案:

答案 0 :(得分:1)

您可以使用compound queries根据其他查询结果创建查询。

答案 1 :(得分:0)

   "you must create a separate table in which the relationship is tracked. 
   This table, which we will call Favourite, would have a 'User_Id'
   column and a 'Favourite_Id' column, each with a pointer to a Parse User."



    currentUser = ParseUser.getCurrentUser();

    ParseQuery<ParseObject> query = ParseQuery.getQuery("Favourite");
    query.whereEqualTo("User_Id", currentUser);
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> objectList, ParseException e) {
            if (e == null) {
                userList = new ArrayList<ParseObject>();
                parseUsers = new ArrayList<ParseUser>();
                for (int i = 0; i < objectList.size(); i++) {
                    userList.add((ParseObject) objectList.get(i).get("Favourite_Id"));
                }
                for (int i = 0; i < userList.size(); i++) {
                    userList.get(i).fetchIfNeededInBackground(new GetCallback<ParseUser>() {
                        @Override
                        public void done(ParseUser object, ParseException e) {
                            if (e == null) {
                                parseUsers.add(object);
                            }
                        }
                    });
                }


            }

        }
    });