2014-11-03 74 views
1

我需要两张表格用于搜索。我用内连接来获得这两个。但是这两个不同的表有一些相同的列名(我需要)。我如何区分这些列。使用带有多个表格光标的光标适配器(内部连接)

这是我做的。

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次,我不知道我怎么能分开他们。

回答

2

代替*名称列要查询和使用别名,例如:

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

然后

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

不错的举动。谢谢。 – 2014-11-03 15:04:14