Фон
У меня есть проект Android, у которого есть база данных с двумя таблицами: tbl_question
и tbl_alternative
.
Чтобы заполнить представления вопросами и альтернативами, я использую курсоры. Нет никаких проблем с получением данных, которые мне нужны, пока я не попытаюсь присоединиться к двум таблицам.
Tbl_question ------------- _id question categoryid
Tbl_alternative --------------- _id questionid categoryid alternative
Мне нужно что-то вроде следующего:
SELECT tbl_question.question, tbl_alternative.alternative where
categoryid=tbl_alternative.categoryid AND tbl_question._id =
tbl_alternative.questionid.`
Это моя попытка:
public Cursor getAlternative(long categoryid) {
String[] columns = new String[] { KEY_Q_ID, KEY_IMAGE, KEY_QUESTION, KEY_ALT, KEY_QID};
String whereClause = KEY_CATEGORYID + "=" + categoryid +" AND "+ KEY_Q_ID +"="+ KEY_QID;
Cursor cursor = mDb.query(true, DBTABLE_QUESTION + " INNER JOIN "+ DBTABLE_ALTERNATIVE, columns, whereClause, null, null, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
Я нахожу этот способ, чтобы сформировать запросы сложнее обычного SQL, но получил совет использовать этот способ, поскольку он менее подвержен ошибкам.
Вопрос
Как мне присоединиться к двум таблицам SQLite в моем приложении?