在android中创建sqlite视图

时间:2014-01-14 14:47:27

标签: android sqlite

我从带有游标的两个表中获取数据并且花费了太多时间,我想要从表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 ");";

有没有更快的方法呢?

1 个答案:

答案 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} );

然后,与您当前打开多个游标的方法相比,这是对数据库的一次调用。