我的LEFT JOIN
ContentProvider
的查询语句
左表是帖子,它有一个post_id列,右表是标签,它有一个post_id列,我正在做posts left join taggings on posts.post_id=taggings.post_id
查询ContentProvider
时,如果taggings表中没有匹配的行,由于某种原因,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");
答案 0 :(得分:0)
我通过使用setProjectionMap()
将MetaData.COLUMN_POST_ID
映射到MetaData.TABLE_POSTS + "," + MetaData.COLUMN_POST_ID