查询Azure MobileServiceTable(Android)的两个表时如何使用连接

时间:2017-06-23 20:09:22

标签: android azure

我正在尝试编写一个连接我的Azure Cloud Portal中的两个MobileServiceTable的查询。

目前这是我的代码。

List<Post> followTable = mPostTable.where().field("userId").ne(mUser.getUserId()).orderBy("createdAt", QueryOrder.Descending).execute().get();
            mPostTable.where().field("userId").ne(mUser.getUserId()).orderBy("createdAt", QueryOrder.Descending).execute().get();
            final List<Post> returnTable = new ArrayList<Post>();
            for(Post p : followTable){
                if(doesFollowingExist(mUser.getUserId(), p.getId()).size() > 0 
                && !doesFollowingExist(mUser.getUserId(), 
                p.getId()).get(0).isRemoved()){
                    returnTable.add(p);
                    p.setFollowed(true);
                }
            }

我首先找到用户没有写的所有帖子。然后,我运行一个快速测试,以查看用户是否已关注该帖子。如果他有,那么它会将它添加到新列表中。但是,这种做法要求我查看每一篇文章,然后对每个人进行跟踪检查。

显然,这是错误的做法,而且需要永远。我要问的是:如何加入这两个表,以便我可以在一个查询中获取用户所关注的所有帖子?我似乎无法找到办法。

1 个答案:

答案 0 :(得分:0)

Azure移动应用客户端SDK只允许您执行一些不包括join之类操作的简单操作。如果你想这样做,你需要在后端创建一个自定义api,并在移动端调用自定义api,如android app。

有一个类似的SO帖子Azure mobile app query inner join with java,您可以参考我的答案知道该怎么做。