androidler1
Stammgast
- 79
Hallo,
ich habe gegoogelt aber leider nichts passendes gefunden.
Ich habe zum Beispiel 2 Tabellen angelegt. Mit folgenden Namen und Inhalt als Beispiel.
Tabelle: Klasse
ID---------Klasse
5----------Umsatzerlöse
Tabelle: Konto
KtoNr--------Bezeichnung---------Klasse(Fremdschlüssel von oben)
50-----------Handelswaren-----------5
So sehen die Queries zum Anlegen der Tabellen aus:
Zum Einfügen in die Tabelle Konto gehe ich so vor:
Was mir hier schon beim Einfügen auffällt, dass wenn ich anstatt der roten 5 (oben im Code) eine 10 eingebe, dann bekomm ich keine Fehlermeldung zurück, da es ja keinen Datensatz in der Tabelle Klassen mit dem Primärschlüssel 10 gibt. Warum wird hier nicht überprüft ob es einen Datensatz mit der 10 in Klasse gibt??
Nun ja, das eigentliche Problem ich lese jetzt die Daten aus der Tabelle Konto aus und bekommen folgende ausgabe mit dem Code hier:
Ausgabe: 50 | Handelswaren | 5
Ich möchte aber anstatt der grünen 5 hier Umsatzerlöse stehen haben.
D.h. ich muss ja einen Join(where) machen, aber wie mache ich das ohne die komplette Query selber zu schreiben.
ich habe gegoogelt aber leider nichts passendes gefunden.
Ich habe zum Beispiel 2 Tabellen angelegt. Mit folgenden Namen und Inhalt als Beispiel.
Tabelle: Klasse
ID---------Klasse
5----------Umsatzerlöse
Tabelle: Konto
KtoNr--------Bezeichnung---------Klasse(Fremdschlüssel von oben)
50-----------Handelswaren-----------5
So sehen die Queries zum Anlegen der Tabellen aus:
Code:
private static final String CREATE_KLASSE = "Create table if not exists "
+ MY_DB_TABLE_KLASSE + " ( id integer primary key, "
+ "klasse varchar(50) );";
private static final String CREATE_KONTO = "Create table if not exists "
+ MY_DB_TABLE_KTO + " ( KtoNr integer primary key, "
+ "bezeichnung varchar(100), " +
"Klasse references " + MY_DB_TABLE_KLASSE + "(id) );";
Code:
ContentValues values = new ContentValues();
try{
values.put("ktonr", "50");
values.put("bezeichnung", "Handelswaren");
values.put("klasse", [COLOR="Red"][B]5[/B][/COLOR]);
myDB.insert(MY_DB_TABLE_KTO, null, values);
}catch(SQLException e){
System.out.println("FEHLER INSERT KONTO");
}
Nun ja, das eigentliche Problem ich lese jetzt die Daten aus der Tabelle Konto aus und bekommen folgende ausgabe mit dem Code hier:
Code:
Cursor c = myDB.query(MY_DB_TABLE_KTO, null, null, null, null, null, null);
c.moveToFirst();
t.setText("");
while(c.isAfterLast()==false){
t.append("\n" + c.getString(0)+ " | "+c.getString(1) + " | " + c.getString(2));
c.moveToNext();
}
c.close();
Ich möchte aber anstatt der grünen 5 hier Umsatzerlöse stehen haben.
D.h. ich muss ja einen Join(where) machen, aber wie mache ich das ohne die komplette Query selber zu schreiben.