我正在使用SQLite,我认为我在获取表ID时遇到问题,我的表存储了书籍类别,这里的图像详细信息是我表格的图形表示
| mSubCategory_id | mCategory_id_FK | mSubCategory_description | mSubCategory_image|
我的问题是获取ID字段值,下面是一个查询我用来匹配我的子Cateogory表中的书籍与某个类别,它的工作完美,但我似乎无法访问id的值,我得到相同的值对于id
和mSubCateogory_id
,实际意义上是mSubCateogory_id
而不是id
的值是以下查询:
String sQuery = " SELECT "+mCategory_id+", "+mCategory_id_FK+", "+Constant.SUB_DESCRIPTION+
", "+mSubCategory_image+" FROM "+CATEGORY_TABLE+
" INNER JOIN "+SUB_CATEGORY_TABLE+" ON "+mCategory_id +" = " +mCategory_id_FK
+ " WHERE "+mCategory_id +" = ?";
String[] args = new String[1];
args[0] = String.valueOf(mtargetID);
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(sQuery, args);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
ExpandableCategoryItem mCateogory= new ExpandableCategoryItem();
//I am getting the same value here whether I use
//getString(0) or getString(1)
mCateogory.setId(Integer.parseInt(cursor.getString(1)));
mCateogory.setmDescription(cursor.getString(2));
mCateogory.setmCategoryImgPath(cursor.getString(3));
mCategoryImgPost.add(mCateogoryPost);
} while (cursor.moveToNext());
答案 0 :(得分:1)
String sQuery = " SELECT "+mCategory_id+", "+mCategory_id_FK+", "+Constant.SUB_DESCRIPTION+
", "+mSubCategory_image+" FROM "+CATEGORY_TABLE+
" INNER JOIN "+SUB_CATEGORY_TABLE+" ON "+mCategory_id +" = " +mCategory_id_FK
+ " WHERE "+mCategory_id +" = ?";
在上面的查询中,mCategory_id和mCategory_id_Fk列可能相同。您需要使用mSubCategory_id
替换它们中的任何一个