Android 错误的cursor.getColumnIndex在左联接查询中返回

Android 错误的cursor.getColumnIndex在左联接查询中返回,android,android-contentprovider,android-sqlite,Android,Android Contentprovider,Android Sqlite,在我的ContentProvider 左边的表是posts,它有一个post\u id列,右边的表是taggings,它也有一个post\u id列,我在posts上做posts左连接标记。post\u id=taggings.post\u id 查询ContentProvider时,如果标记表中没有匹配的行,由于某种原因,cursor.getColumnIndex(“post_id”)返回的值是错误的,id的int值始终为0 如果标记中有一个匹配的行,则所有操作都按预期进行 我错过了什么 Co

在我的
ContentProvider

左边的表是posts,它有一个post\u id列,右边的表是taggings,它也有一个post\u id列,我在posts上做
posts左连接标记。post\u id=taggings.post\u id

查询
ContentProvider
时,如果标记表中没有匹配的行,由于某种原因,
cursor.getColumnIndex(“post_id”)
返回的值是错误的,id的int值始终为0

如果标记中有一个匹配的行,则所有操作都按预期进行

我错过了什么

ContentProvider查询:

case POSTS:
        qb.setTables(MetaData.TABLE_POSTS

                + " LEFT JOIN " + MetaData.TABLE_TAGGINGS + " ON "
                + MetaData.TABLE_POSTS + "." + MetaData.COLUMN_POST_ID
                + "=" + MetaData.TABLE_TAGGINGS + "." + MetaData.COLUMN_POST_ID
                );
        break;
游标查询语句:

Cursor cursor = context.getContentResolver().query(MetaData.POSTS_URI, 
            null, null, 
            null, MetaData.TABLE_POSTS + "." + MetaData.COLUMN_POST_ID + " DESC");

我通过使用
setProjectionMap()
元数据.COLUMN\u POST\u ID
映射到
MetaData.TABLE\u POSTS+”,“+MetaData.COLUMN\u POST\u ID