我正在尝试使用以下 INTERSECT 查询来查询我的 Android SQLite 数据库,但它崩溃了。这两个选择查询本身就可以正常工作,并且它们肯定会产生匹配的结果,所以我不明白为什么 INTERSECT 语句不起作用:
SQLiteDatabase db = (new DatabaseHelper(this)).getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT tblsyndromes._id, synname" +
" FROM tblsyndromes JOIN tblsymsynlink ON tblsymsynlink.synId = tblsyndromes._id" +
" WHERE tblsymsynlink.symId = "+intCondition+" " +
" INTERSECT SELECT tblsyndromes._id, synname FROM tblsyndromes JOIN synconlink" +
" ON synconlink.synId = tblsyndromes._id" +
" WHERE synconlink.conId = "+intCondition2+"", null);
我正在使用的新代码 -
String sqlString = "SELECT tblsyndromes._id, tblsyndromes.synname FROM tblsyndromes JOIN synconlink ON synconlink.synId = tblsyndromes._id WHERE synconlink.conId = 55 INTERSECT SELECT tblsyndromes._id, tblsyndromes.synname FROM tblsyndromes JOIN tblsymsynlink ON tblsymsynlink.synId = tblsyndromes._id WHERE tblsymsynlink.symId = 136";
SQLiteDatabase db = (new DatabaseHelper(this)).getWritableDatabase();
Cursor cursor = db.rawQuery(sqlString,null);
ArrayList<String> mArrayList = new ArrayList<String>();
cursor.moveToFirst();
while(!cursor.isAfterLast()) {
mArrayList.add(cursor.getString(cursor.getColumnIndex("synname")));
cursor.moveToNext();
}
我已经使用 sqlite3 反复测试了 sql 并且它可以工作 - 两个选择查询在 android 中独立工作但是一旦我尝试使用 INTERSECT 我就会崩溃 - 我现在收到以下错误
对字段槽 0,-1 的错误请求。numRows = 3,numColumns = 2