I do the join in the content provider using a different Uri for the joined view. For example you could use
content://com.example.my_provider/spend_with_category as the Uri and do the join when you create the cursor. -- RichardC On Oct 16, 12:34 pm, Victor Lin <[email protected]> wrote: > But how about ContentProvider? I didn't query database directly, I > used ContentProvider. > > On 10月16日, 下午6時39分, RichardC <[email protected]> wrote: > > > You can use a JOIN clause in SQLiteQueryBuilder.setTables > > >http://developer.android.com/reference/android/database/sqlite/SQLite... > > > -- > > RichardC > > > On Oct 16, 10:50 am, Victor Lin <[email protected]> wrote: > > > > Hi, I have two tables: > > > > Category(_id, name) > > > Spend(_id, spend, category_id) > > > > I want to join these two tables. I tried to use CursorJoiner: > > > > Cursor spendCursor = managedQuery( > > > AccountBook.Spend.CONTENT_URI, > > > new String[] { AccountBook.Spend._ID, > > > AccountBook.Spend.SPEND, AccountBook.Spend.CATEGORY_ID }, > > > null, null, AccountBook.Spend.CATEGORY_ID > > > ); > > > > Cursor categoryCursor = managedQuery( > > > AccountBook.Category.CONTENT_URI, > > > new String[] { AccountBook.Category._ID, > > > AccountBook.Category.NAME }, > > > null, null, AccountBook.Category._ID > > > ); > > > > CursorJoiner joiner = new CursorJoiner( > > > spendCursor, new String[] { AccountBook.Spend.CATEGORY_ID > > > }, > > > categoryCursor, new String[] { AccountBook.Category._ID } > > > ); > > > > With following data: > > > > Spend's category_id: 1, 1, 1, 1, 2 > > > Category's _id: 1, 2, 3 > > > > I got following results of CursorJoiner : > > > > BOTH > > > LEFT > > > LEFT > > > LEFT > > > BOTH > > > RIGHT > > > > That's strange, it seems the behavior of CursorJoiner is not like the > > > behavior of join of usual database. What I want is, list all spends in > > > list with its category's name. > > > > For example: > > > > Spends (_id, spends, category_id) : > > > 1, 999, 1 > > > 2, 55, 2 > > > 3, 30, 2 > > > 4,, 60, 3 > > > > Categories (_id, name): > > > 1, food > > > 2. tips > > > 3. 3C products > > > > And I want the list looks like: > > > > (spend.spend, category.name) > > > 999, food > > > 55, tips > > > 30, tips > > > 60, 3C products > > > > How can I achieve this with Android? > > > > Thanks. > > > Victor Lin. > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

