使用带有多个表光标的Cursor Adapter(内部连接)

时间:2014-11-03 14:40:48

标签: android sql sqlite cursor inner-join

我的搜索需要两张桌子。我使用内部联接来获得这两个。但是这两个不同的表有一些相同的列名(我需要)。我该如何区分这些专栏。

这就是我所做的。

  final String MY_QUERY = "SELECT * FROM Products p INNER JOIN Categories c ON p.CategoryID=c._id";                           Cursor cursor = db.rawQuery(MY_QUERY, null);

我在CursorAdapter中使用此光标来设置listview单元格字段。

  prodName.setText(cursor.getString(cursor.getColumnIndex("Name")));
  prodCategory.setText(cursor.getString(cursor.getColumnIndex("Name")));

如您所见,这些假设来自不同表格的不同值。但它们显示相同的值(名称),因为我的内部联接有2次这个字段,我不知道我怎么能分开它们。

1 个答案:

答案 0 :(得分:2)

而不是*命名您要查询的列并使用别名,例如:

SELECT p.name as pname, c.name as cname, ...

然后

prodName.setText(cursor.getString(cursor.getColumnIndex("pname")));
prodCategory.setText(cursor.getString(cursor.getColumnIndex("cname")));