我从带有游标的两个表中获取数据并且花费了太多时间,我想要从表A中获取某个键(KEY_pk_ymd)我得到了id(id1 {;} id2 {;}。 ..) - 列和那些ID
do
{
...something
}
while(rowGetter.moveToNext());
我得到它们中的每一个然后调用第二个使用特定ID的游标并从表B中获取该id的不同列,所以因为它太慢了我想制作某种视图,如果它可以加速这里的过程就是我拥有表格的结构......
private static final String DATABASE_CREATE = "create table " + DATABASE_TABLE + " ("
+ KEY_ROWID + " integer primary key autoincrement, "
+ KEY_title_ids + " text, "
+ KEY_pk_ymd + " integer);";
private static final String DATABASE_CREATE2 = "create table " + DATABASE_TABLE2 + " ("
+ KEY_ROWIDz + " integer primary key autoincrement, "
+ KEY_title_id + " integer, "
+ KEY_desc + " text ");";
有没有更快的方法呢?
答案 0 :(得分:0)
你需要一个表连接,类似于:
SELECT
b.title_id,
b.desc
FROM tableA a
INNER JOIN tableB b
ON b._id = a._id
WHERE a.pk_ymd = ?
然后,您可以将其作为参数化查询运行,您可以在其中提供映射到?的值,例如:
cursor = db.rawQuery(query, new String[] {pk_ymd_value} );
然后,与您当前打开多个游标的方法相比,这是对数据库的一次调用。