sql >> Databasteknik >  >> RDS >> SQLite

Hur kombinerar jag data från två separata tabeller till en enda markör?

Du kan använda en CursorJoiner för att få något som liknar att slå samman två markörer till en. CursorJoiner utför faktiskt inte en sammanslagning. När du itererar över den, flyttar den de ursprungliga två markörerna så att deras rader matchar den eller de angivna kolumnerna. Det är därför det är nödvändigt att båda markörerna sorteras på de kolumner som ska användas i sammanfogningen.

Länk till dokumentation:http://developer.android.com/reference/android/database/CursorJoiner.html

Kodexempel:

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. ORACLE SQL listagg funktion

  2. PostgreSQL-servern stängdes inte av på Lion (Mac OS 10.7)

  3. Composite PRIMARY KEY upprätthåller NOT NULL-begränsningar på inblandade kolumner

  4. Hur får man första dagen i varje motsvarande månad i mysql?