にを含むクエリステートメントがありLEFT JOIN
ますContentProvider
左側のテーブルはpostsであり、post_id列があり、右側のテーブルはタグ付けされており、post_id列もあります。posts left join taggings on posts.post_id=taggings.post_id
をクエリするときContentProvider
に、タグ付けテーブルに一致する行がない場合、何らかの理由でfromの戻り値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");