sql >> Database >  >> RDS >> SQLite

Hoe combineer ik gegevens uit twee afzonderlijke tabellen in een enkele cursor?

U kunt een CursorJoiner gebruiken om iets te krijgen dat lijkt op het samenvoegen van twee cursors tot één. De CursorJoiner voert geen samenvoeging uit. Terwijl u eroverheen herhaalt, worden de oorspronkelijke twee cursors zodanig verplaatst dat hun rijen overeenkomen met de opgegeven kolom(men). Daarom is het nodig dat beide cursors worden gesorteerd op de kolommen die in de join moeten worden gebruikt.

Link naar documentatie:http://developer.android.com/reference/android/database/CursorJoiner.html

Codevoorbeeld:

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. Het kantelpunt visualiseren met Plan Explorer

  2. Zorg ervoor dat de cursor correct is geïnitialiseerd voordat u er gegevens van opent

  3. Oracle-foutafhandeling

  4. Op afstand verbinding maken met MySQL