Ich arbeite mit SQLite auf Android.
Ich verwendete ContentProvider
, um Daten von db abzufragen. Und jetzt habe ich ein Problem, wenn versuchen, Unterabfrage zu verwenden, über ContentResolver
selectionArgs in ContentResolver.query (...) kann eine Unterabfrage sein?
String selection = "cat_id NOT IN ?"
String[] selectionArgs = new String[]{"(SELECT Categories.id FROM Categories)"}
cursor = mResolver.query(getContentUri(), getListColumns(),
selection, selectionArgs, orderBy);
Und das ist der Fehler: „Kann ich selectionArgs verwenden eine Subquery sein“
08-06 10:32:36.070: E/AndroidRuntime(2151): Caused by: android.database.sqlite.SQLiteException: near "?": syntax error (code 1): , while compiling: SELECT * FROM TRANSACTIONS WHERE cat_id NOT IN ? ORDER BY time_created ASC, id ASC`
Meine Frage ist,
Mein Zweck ist "Holen Sie sich die Liste der Transaktionen, wo Cat_id ist nicht in einer Kategorie Tabelle".
Wer kann mir helfen?
Vielen Dank für Ihre Antwort so viel. Ich kann nicht genau die Elemente NICHT IN (?,? ...) definieren. Ich denke, die SQL-Abfrage "Select * from TRANSACTIONS wo cat_id NICHT IN (Wählen Sie KATEGORIEN.id aus KATEGORIEN)" ist Okay. Aber ich weiß nicht, wie man diese Abfrage mit ContentResolver macht? – NamLe
haben Sie versucht, die? und haben Sie einfach den vollen Code drin? Sie möchten dann auch Null für die selectionArgs übergeben – Nicholas
Siehe bearbeiten, hoffentlich funktioniert das für was Sie wollen. – Nicholas