我正在尝试找出如何使用 android 应用程序中的 sqlite 数据库对我的两个表进行简单的表连接。
是使用 CursorJoiner 的最简单方法还是有更简单的方法?
我正在尝试找出如何使用 android 应用程序中的 sqlite 数据库对我的两个表进行简单的表连接。
是使用 CursorJoiner 的最简单方法还是有更简单的方法?
在SQLiteDatabase和SQLiteQueryBuilder的实现中,您将看到可以将要连接的表传递给table
参数 ,query
即使文档暗示它只会采用表的单个名称。SQLiteQueryBuilder的文档更加清晰,甚至建议使用foo, bar
or之类的东西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());
更多细节在这里