0

我的查询语句中有LEFT JOIN一个ContentProvider

左表是帖子,它有一个 post_id 列,右表是标记它也有一个 post_id 列,我正在做posts left join taggings on posts.post_id=taggings.post_id

查询时ContentProvider,如果 taggings 表中没有匹配的行,则由于某种原因 from 的返回值cursor.getColumnIndex("post_id")是错误的,并且 id 的 int 值始终为 0。

如果标记中有匹配的行,则一切都按预期工作。

我在这里想念什么?

内容提供者查询:

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");
4

1 回答 1

0

我通过使用setProjectionMap()映射MetaData.COLUMN_POST_IDMetaData.TABLE_POSTS + "," + MetaData.COLUMN_POST_ID

于 2012-09-26T12:46:14.020 回答