Android:java.lang.IllegalArgumentException:列'_id'不存在

时间:2013-07-25 19:19:43

标签: java android

Cursor ck = db.rawQuery("select name,title,text,type from abstracts_item,abstract_author,authors_abstract where abstract_author._id == authors_abstract.abstractauthor_id and abstracts_item._id ==  authors_abstract.abstractsitem_id", null);

我与其他sqlite工具运行相同的查询。它工作得很好。但是,当我尝试使用cursor时。我收到了一个错误

java.lang.IllegalArgumentException: column '_id' does not exist

我有很多解决方案。但是,没有什么对我有用。如果你们帮助我解决这个问题,我会很高兴。

1 个答案:

答案 0 :(得分:0)

SQL语言不使用==,而是使用=

所以它是s / b:

Cursor ck = db.rawQuery("select name,title,text,type from
abstracts_item,abstract_author,authors_abstract where abstract_author._id =
authors_abstract.abstractauthor_id and abstracts_item._id =
authors_abstract.abstractsitem_id", null);

您还可以使用内部联接而不是where子句来提高性能:

Cursor ck = db.rawQuery("select name,title,text,type from abstracts_item 
    inner join abstract_author on abstract_author._id = authors_abstract.abstractauthor_id
    inner join authors_abstract on abstracts_item._id = authors_abstract.abstractsitem_id", null);