Pracuję z SQLite na Androida.
Użyłem ContentProvider
do zapytania danych z db. I teraz mam problem, gdy spróbuje użyć podzapytania poprzez ContentResolver
selectionArgs w ContentResolver.query (...) może być podzapytaniem?
String selection = "cat_id NOT IN ?"
String[] selectionArgs = new String[]{"(SELECT Categories.id FROM Categories)"}
cursor = mResolver.query(getContentUri(), getListColumns(),
selection, selectionArgs, orderBy);
I to jest błąd: „Czy mogę używać selectionArgs być podkwerendzie”
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`
Moje pytanie brzmi:
Moim celem jest "uzyskać listę transakcji, w których cat_id NIE jest w tabeli kategorii".
Kto może mi pomóc?
Dzięki bardzo za odpowiedź. Nie mogę dokładnie zdefiniować przedmiotów NIE (?,? ...). Myślę, że kwerenda sql "Wybierz * z TRANSACTIONS gdzie cat_id NIE (Wybierz CATEGORIES.id z KATEGORII)" jest OK. Ale nie wiem jak zrobić to zapytanie za pomocą ContentResolver? – NamLe
Czy próbowałeś usunąć? i mam tam tylko pełny kod? również chcesz przekazać wartość zerową do wyboruArgs – Nicholas
Zobacz edytuj, mam nadzieję, że działa to, co chcesz. – Nicholas