SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jak połączyć dane z dwóch oddzielnych tabel w jeden Kursor?

Możesz użyć CursorJoiner, aby uzyskać coś podobnego do połączenia dwóch kursorów w jeden. CursorJoiner w rzeczywistości nie wykonuje scalania. Podczas iteracji przesuwa oryginalne dwa kursory tak, że ich wiersze pasują do określonej kolumny (kolumn). Dlatego konieczne jest, aby oba Kursory były posortowane według kolumn, które mają być użyte w łączeniu.

Link do dokumentacji:http://developer.android.com/reference/android/database/CursorJoiner.html

Przykład kodu:

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. Android Room - Jak zresetować automatycznie wygenerowany klucz podstawowy tabeli przy każdym uruchomieniu aplikacji?

  2. Rejestruj czas zapytań w SQLite na Androidzie

  3. O SQLite

  4. Android SQLiteOpenHelper:Dlaczego metoda onCreate() nie jest wywoływana?

  5. SQLite - Nie można otworzyć pliku bazy danych