Запрос к базе данных android sqlite

Я застрял в одном сценарии, в котором мне нужно выполнить сложный запрос, чтобы получить курсор. Не знаю, возможно или нет. Сценарий: в базе данных есть три таблицы.

 Table         Columns  
Table-1    _id, name, number, ....  
Table-2    _id, table1_id, col1, col2, ....  
Table-3    _id, table2_id, col1, col2, ....

В этих таблицах, когда любая запись вставляется в таблицу 2, в эту запись вставляется соответствующий идентификатор таблицы 1. То же самое для идентификатора таблицы 2 вставляется с записью таблицы 3.

Я хочу, чтобы курсор для CursorAdapter отображал список данных таблицы 3.

Cursor cursor = getContentResolver().query(TABLE_3_NAME, null, null, null, null);

Теперь нужно добавить аргументы выбора и выбора таблицы 1 в этот запрос.
Возможно ли это в Android?


person Khushbu Shah    schedule 03.05.2016    source источник
comment
вы хотите отображать данные таблицы 3 в списке и получать данные из таблицы 1 при выборе определенных данных из списка   -  person Ravi Vaghela    schedule 03.05.2016


Ответы (2)


Вы можете использовать необработанный запрос для выборки из различных таблиц. Один из примеров будет таким, как показано ниже.

 Cursor mCursor = db.rawQuery("SELECT * FROM Table-1, Table-3 " +
                         "WHERE Table1.id = <Whatever selection args you want> " +
                         "GROUP BY Table1.id", null);

Это всего лишь пример. Вам придется изменить его в соответствии с вашими требованиями.

person Ragesh Ramesh    schedule 03.05.2016

Вы можете написать запрос выбора SQL (то есть обычным способом) и выполнить его, используя rawQuery().

Например:

Cursor cursor = db.rawQuery(selectQuery, null);
person Paresh Mayani    schedule 03.05.2016