2012-09-23 34 views
0

我在ContentProvider錯誤cursor.getColumnIndex重新調校上LEFT JOIN查詢

左表與LEFT JOIN查詢語句的職位,它有一個POST_ID柱,右邊的表,它的Tagging它有一個POST_ID列還有和我做posts left join taggings on posts.post_id=taggings.post_id

查詢ContentProvider的時候,如果沒有匹配的行的表的Tagging,由於某種原因,從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

我固定,通過使用setProjectionMap()MetaData.COLUMN_POST_ID映射到MetaData.TABLE_POSTS + "," + MetaData.COLUMN_POST_ID