fundo
Tenho um projeto Android que possui um banco de dados com duas tabelas: tbl_question
e tbl_alternative
.
Para preencher as visualizações com perguntas e alternativas, estou usando cursores. Não há problemas em obter os dados de que preciso até tentar unir as duas tabelas.
Tbl_question ------------- _Eu iria questão Categoria ID
Tbl_alternative --------------- _Eu iria questionid Categoria ID alternativo
Eu quero algo como o seguinte:
SELECT tbl_question.question, tbl_alternative.alternative where
categoryid=tbl_alternative.categoryid AND tbl_question._id =
tbl_alternative.questionid.`
Esta é minha tentativa:
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;
Acho que essa maneira de formar consultas é mais difícil do que o SQL regular, mas recebi o conselho para usar dessa forma, pois é menos sujeita a erros.
Questão
Como faço para unir duas tabelas SQLite em meu aplicativo?