SQLite
 sql >> база данни >  >> RDS >> SQLite

Как да комбинирам данни от две отделни таблици в един курсор?

Можете да използвате CursorJoiner, за да получите нещо подобно на сливане на два курсора в един. CursorJoiner всъщност не извършва сливане. Докато го премествате, той премества оригиналните два курсора, така че редовете им да съвпадат в определената колона(и). Ето защо е необходимо и двата курсора да бъдат сортирани по колоните, които ще се използват в обединението.

Връзка към документацията:http://developer.android.com/reference/android/database/CursorJoiner.html

Пример за код:

CursorJoiner joiner = new CursorJoiner(userCursor, new String[]{ "user_id" }, postCursor, new String[] {"user_id"});

while (joiner.hasNext()) {
    CursorJoiner.Result result = joiner.next();
        switch (result) {
            case LEFT:
                // don't care about this case
                break;

            case RIGHT:
                // nor this case
                break;

            case BOTH:
                // here both original Cursors are pointing at rows that have the same user_id, so we can extract values
                int postId = postCursor.getInt(...);
                String headline = postCursor.getString(...);
                int userId = userCursor.getInt(...);        
                String userName = userCursor.getString(...);

                // do something with above values

                break;

        }
}     


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на String[] selectionArgs в SQLiteDatabase.query()

  2. 2 примерни бази данни за SQLite

  3. 2 начина за изтриване на дублиращи се редове в SQLite

  4. Променено ли е поведението на Android SQLite Journal?

  5. SQLiteException:таблицата вече съществува