I am trying to find out how to do a simple table join on my two tables using a sqlite database in an android application.
Is the simplest way to use CursorJoiner or is there any easier way?
I am trying to find out how to do a simple table join on my two tables using a sqlite database in an android application.
Is the simplest way to use CursorJoiner or is there any easier way?
SQLiteDatabaseとSQLiteQueryBuilderの実装では、結合したいテーブルを のtable
引数に渡すことができることがわかりますがquery
、ドキュメントではテーブルの単一の名前しかとらないことが示されています。SQLiteQueryBuilderのドキュメントはより明確であり、foo, bar
またはのようなことさえ示唆していfoo LEFT OUTER JOIN bar ON (foo.id = bar.foo_id)
ます。
サードパーティのライブラリを使用する場合は、Active Android を使用することをお勧めします
https://github.com/pardom/ActiveAndroid
それを使用すると、このようにテーブルをマージできます
From query = new Select()
.from(Foo.class)
.innerJoin(Bar.class)
.on("Foo.Id=Bar.Id");
ローダーで使用するためにカーソルを戻すこともできます
Cursor cursor = Cache.openDatabase().rawQuery(query.toSql(), query.getArguments());
詳細はこちら