2010-07-19 18 views
23

Estoy tratando de encontrar la mejor manera de hacer una simple combinación de tablas en mis dos tablas usando una base de datos sqlite en una aplicación de Android. ¿Es la forma más simple de usar CursorJoiner o hay alguna manera más fácil?La mejor manera de unir tablas usando sqlite en android

+0

Mejor hacer esto en SQL. Cree una [VISTA] (http://www.sqlite.org/lang_createview.html) con [JOIN] necesario (http://www.sqlite.org/lang_select.html) s. – yanchenko

+0

Traté de hacerlo, pero tuve problemas para que mi proyecto lo reconociera por alguna razón. –

+1

http://stackoverflow.com/a/4957197/334270 –

Respuesta

27

En la implementación de SQLiteDatabase y SQLiteQueryBuilder verá que es posible pasar las tablas que desea unirse al argumento de querytable a pesar de la documentación, sólo tendrá un único nombre de una tabla. La documentación para SQLiteQueryBuilder es más clara e incluso sugiere cosas como foo, bar o foo LEFT OUTER JOIN bar ON (foo.id = bar.foo_id).

+2

los enlaces están rotos – ytg

1

Si usted está dispuesto a utilizar una biblioteca de terceros, recomiendo el uso de Active Android

https://github.com/pardom/ActiveAndroid

usarlo puede combinar tablas como esta

From query = new Select() 
    .from(Foo.class) 
    .innerJoin(Bar.class) 
    .on("Foo.Id=Bar.Id"); 

incluso se puede obtener un cursor hacia atrás para usar en cargadores

Cursor cursor = Cache.openDatabase().rawQuery(query.toSql(), query.getArguments()); 

más detalles here

Cuestiones relacionadas