2010-07-19 2 views
23

Я пытаюсь найти лучший способ сделать простое соединение таблицы на моих двух таблицах, используя базу данных sqlite в приложении Android. Самый простой способ использовать CursorJoiner или есть ли более простой способ?Лучший способ присоединиться к таблицам с использованием sqlite в android

+0

Лучше сделать это в SQL. Создайте [VIEW] (http://www.sqlite.org/lang_createview.html) с необходимыми [JOIN] (http://www.sqlite.org/lang_select.html) s. – yanchenko

+0

Я пытался это сделать, но у меня были проблемы с получением моего проекта, чтобы узнать его по какой-то причине. –

+1

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

ответ

27

В реализации SQLiteDatabase и SQLiteQueryBuilder вы увидите, что можно передать таблицы, которые вы хотите присоединиться к table аргумента query, хотя документация предполагает, что будет принимать только одно имя таблицы. Документация для SQLiteQueryBuilder более понятна и даже предлагает такие вещи, как foo, bar или foo LEFT OUTER JOIN bar ON (foo.id = bar.foo_id).

+2

ссылки не работают – ytg

1

Если вы готовы использовать сторонние библиотеки, я рекомендую использовать Активный 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()); 

Подробнее here

Смежные вопросы