【发布时间】:2014-02-23 02:14:15
【问题描述】:
如何访问同名的列?我尝试过cursor.getString(cursor.getColumnIndexOrThrow("table.column")),但它似乎不起作用
【问题讨论】:
-
当你进行连接时,使用别名作为列名并确保它在投影中。
-
我正在为这个使用 rawQuery。也使用别名并尝试了 Alias.column_name;还是不行
如何访问同名的列?我尝试过cursor.getString(cursor.getColumnIndexOrThrow("table.column")),但它似乎不起作用
【问题讨论】:
你可以使用别名,即
db.rawQuery("SELECT column1 AS c1 FROM table");
那么你可以使用:
cursor.getColumnIndex("c1");
显然这同样适用于来自 JOIN 的字段。 干杯。
编辑
连接子句示例:
db.rawQuery("SELECT t1.columnX AS c1, t2.columnY as c2 FROM table1 t1 INNER JOIN table2 t2 ON t1.A = t2.B");
那么无论它属于哪个表,你都可以简单地使用别名:
cursor.getColumnIndex("c2") should return 1.
【讨论】:
SELECT Course.image, Student.image FROM courses as Course join students as Student..... 然后使用cursor.getColumnIndex("Course.index"); 这可能吗?
one-to-many 关系。例如,表 A 正好有一行,而表 B 有 3 行。因此,当我使用连接时,我现在得到一个游标,我不确定如何在一次迭代中读取数据 1 行(表 a)+ 3 行(表 b)!