首页 > 解决方案 > 解析平台在Android中使用join

问题描述

我正在使用基于解析平台数据库的back4app构建应用程序。

我的数据库架构是这样的:

Users table:
id
User_name
....
Items table:
id (f)
Item_name
Count
.....
User item table:
Id
User_id
Item_id
item_status
item_notes
......

我想要实现的是item_name通过在 android中user_id如何使用它来获得?parse

编辑:要清楚......每个项目都将在User_Item表中定义,即使它是同一个项目,因为用户可能随时更改。这就是为什么我想要user_id从表中获取 item_name的原因items

标签: androidparse-platformback4app

解决方案


我假设您要查询“用户项目表”,所以...

首先,您的itemId字段应该是指向“项目表”中的对象的指针,您可以使用query.include("itemId");这种方式,这意味着“项目表”中的对象也将与查询一起返回。

下面是一个完整查询的例子:

ParseQuery<ParseObject> query = ParseQuery.getQuery("UserItem");

query.include("itemId");

query.getFirstInBackground(new GetCallback<ParseObject>() {
  public void done(ParseObject object, ParseException e) {
    ParseObject item = object.getParseObject("itemId");
    String itemName = item.getString("Item_name");
  }
});

我不使用 android SDK,所以这段代码可能并不完美 - 请参阅android 指南了解更多详细信息(我从那里提取了所有这些代码)。

编辑:

添加query.whereEqualTo("User_id", "xxxxx");以获取当前用户的用户项(替换xxxxx为用户 ID)。

ParseQuery<ParseObject> query = ParseQuery.getQuery("UserItem");

query.include("itemId");
query.whereEqualTo("User_id", "xxxxx");

query.getFirstInBackground(new GetCallback<ParseObject>() {
  public void done(ParseObject object, ParseException e) {
    ParseObject item = object.getParseObject("itemId");
    String itemName = item.getString("Item_name");
  }
});

推荐阅读