SQL选择问题

时间:2015-12-01 01:31:10

标签: sqlite

我正在使用SQLite,我认为我在获取表ID时遇到问题,我的表存储了书籍类别,这里的图像详细信息是我表格的图形表示

| mSubCategory_id | mCategory_id_FK | mSubCategory_description | mSubCategory_image|

我的问题是获取ID字段值,下面是一个查询我用来匹配我的子Cateogory表中的书籍与某个类别,它的工作完美,但我似乎无法访问id的值,我得到相同的值对于idmSubCateogory_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());

1 个答案:

答案 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

替换它们中的任何一个