Android:如何在执行INNER JOIN时访问Cursor的结果?

and*_*dro 6 sqlite android android-sqlite

我在SQLite数据库的两个表table1和table2上使用INNER JOIN.如何从光标访问结果(两个表的列)?这两个表有两列同名.

        String query = SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id WHERE name like '%c%';
        Cursor c = newDB.rawQuery(query, null);
Run Code Online (Sandbox Code Playgroud)

mai*_*ona 6

您可以指定列名,而不使用'*'。

String query = SELECT table1.id AS ID,table2.column2 AS c2,...... FROM table1 INNER JOIN table2 ON table1.id=table2.id WHERE name like '%c%';
Run Code Online (Sandbox Code Playgroud)

然后使用列名ID,c2等访问。

while (cursor.moveToNext()) {
  String c2 = cursor.getString(cursor.getColumnIndex("c2"));
  int id = cursor.getInt(cursor.getColumnIndex("ID"));
  ..............
  .............
}
Run Code Online (Sandbox Code Playgroud)

编辑断开的链接:在http://www.vogella.com/tutorials/AndroidSQLite/article.htmlhttp://www.codota.com/android/methods/android.database.sqlite.SQLiteDatabase/中检查rawQuery方法rawQuery的不同示例