我需要两个表进行搜索。我使用内部联接来获得这两个。但是,这两个不同的表具有一些相同的列名(我需要)。我如何区分此列。

这是我所做的。

  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次,而且我不知道该如何分隔它们。

最佳答案

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

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


接着

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

10-06 13:38
查看更多