Hintergrund
Ich habe ein Android-Projekt, das eine Datenbank mit zwei Tabellen hat: tbl_question
und tbl_alternative
.
Um die Ansichten mit Fragen und Alternativen zu füllen, verwende ich Cursor. Es gibt keine Probleme beim Abrufen der benötigten Daten, bis ich versuche, die beiden Tabellen zu verbinden.
Tbl_question ------------- _Ich würde Frage Kategorie ID
Tbl_alternative --------------- _Ich würde fragend Kategorie ID Alternative
Ich möchte so etwas wie das Folgende:
SELECT tbl_question.question, tbl_alternative.alternative where
categoryid=tbl_alternative.categoryid AND tbl_question._id =
tbl_alternative.questionid.`
Das ist mein Versuch:
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;
Ich finde diesen Weg zum Erstellen von Abfragen schwieriger als normales SQL, habe aber den Rat erhalten, diesen Weg zu verwenden, da er weniger fehleranfällig ist.
Frage
Wie verbinde ich zwei SQLite-Tabellen in meiner Anwendung?