sql >> データベース >  >> RDS >> SQLite

2つの別々のテーブルのデータを1つのカーソルに結合するにはどうすればよいですか?

    CursorJoinerを使用して、2つのカーソルを1つにマージするのと同じようなものを取得できます。 CursorJoinerは実際にはマージを実行しません。それを繰り返すと、元の2つのカーソルが移動して、それらの行が指定された列と一致するようになります。これが、結合で使用される列で両方のカーソルをソートする必要がある理由です。

    ドキュメントへのリンク: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. PL / pgSQLで最も近いX分に丸める方法は?

    2. SQLServerでデータファイルとログファイルの場所を見つける方法

    3. OracleのJSON_VALUE()関数

    4. sqliteテーブルにタイプテキストとして格納されている列タイプ整数の最大値を取得する方法