从多个 table 中获取数据

Fetching data from multiple table

我需要从 Android 中的两个表中获取数据。我正在为数据库使用 OrmLite。 接下来是我的查询:

SELECT m.*, r.campaign_name, r.description, r.terms_condition 
FROM mycampaignlist m, redeemlanguagedata r 
WHERE r.lang_type = 2

如何在 OrmLite.

中创建此类查询

I need to get data from two tables in Android... How could I create this type of query in OrmLite.

如果您从每个 table 中选择字段组合,ORMLite 不支持使用内部 QueryBuilderJOIN 查询。在您的示例中,您有一些来自 mycampaignlist 的字段和一些来自 redeemlanguagedata 的字段,因此 ORMLite 无法 return 没有更多帮助的对象。

我建议使用 raw queries 功能,然后您可以将输出作为 List<String[]>List<Object[]>(如果您指定数据类型)或作为列表您自己的对象,如果您指定 RawRowMapper<Foo>.

例如,引用文档:

GenericRawResults<Foo> rawResults = orderDao.queryRaw(
        "SELECT account_id,sum(amount) FROM orders GROUP BY account_id",
    new RawRowMapper<Foo>() {
            public Foo mapRow(String[] columnNames,
              String[] resultColumns) {
                return new Foo(Long.parseLong(resultColumns[0]),
                    Integer.parseInt(resultColumns[1]));
        }
    });
// page through the results
for (Foo foo : rawResults) {
  System.out.println("Account-id " + foo.accountId + " has "
    + foo.totalOrders + " total orders");
}
rawResults.close();

希望对您有所帮助。