从多个 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 不支持使用内部 QueryBuilder
的 JOIN
查询。在您的示例中,您有一些来自 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();
希望对您有所帮助。
我需要从 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 不支持使用内部 QueryBuilder
的 JOIN
查询。在您的示例中,您有一些来自 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();
希望对您有所帮助。