sfondo
Ho un progetto Android che ha un database con due tabelle: tbl_questione tbl_alternative.
Per popolare le viste con domande e alternative sto usando i cursori. Non ci sono problemi nell'ottenere i dati di cui ho bisogno finché non provo a unire le due tabelle.
Tbl_question
-------------
_id
domanda
categoryid
Tbl_alternative
---------------
_id
questionid
categoryid
alternativa
Voglio qualcosa di simile al seguente:
SELECT tbl_question.question, tbl_alternative.alternative where
categoryid=tbl_alternative.categoryid AND tbl_question._id =
tbl_alternative.questionid.`
Questo è il mio tentativo:
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;
Trovo che questo modo per formare query sia più difficile del normale SQL, ma ho ricevuto il consiglio di usarlo in questo modo poiché è meno soggetto a errori.
Domanda
Come posso unire due tabelle SQLite nella mia applicazione?