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
我有很多解决方案。但是,没有什么对我有用。如果你们帮助我解决这个问题,我会很高兴。
答案 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);