2015-12-10 3 views
-1

Я пытаюсь реализовать подзапрос, но получаю сообщение об ошибке only a single result allowed. Я реализую это неправильно в запросе или неправильно это утверждение?Ошибка возврата подзапроса

Поиск должен быть возвращенным именем имени рецепта, который соответствует коду, полученному в вложен оператора выбора

Запрос

return db.rawQuery("select recipe_name from recipes where recipe_code in (select ingredients.recipe_code, ingredients._id from ingredients inner join kitchen on kitchen.ingredient_name = ingredients.ingredient_name)", null); 

Ошибка

Caused by: android.database.sqlite.SQLiteException: only a single result allowed for a SELECT that is part of an expression (code 1): , while compiling: select recipe_name from recipes where recipe_code in (select ingredients.recipe_code, ingredients._id from ingredients inner join kitchen on kitchen.ingredient_name = ingredients.ingredient_name) 

12 -10 22: 19: 04.238 29209-29209/com.example.rory.prototypev2 E/Andr oidRuntime: at android.database.sqlite.SQLiteConnection.nativePrepareStatement (собственный метод)

ответ

0

Я считаю, что проблема заключается в том, что вы пытаетесь вернуть несколько столбцов для вспомогательного запроса, и это позволит только одному столбцу быть возвращенным. Удалите ingredients._id

Запрос будет возвращать

recipe_code, _id 
    123   5 

Вы хотите только код.

+0

Удалив 'components._id', я получаю' Caused by: java.lang.IllegalArgumentException: column '_id' не существует', когда я пытаюсь запустить команду – Hayes121

+0

Извините, что вы правы, ошибка на моем конце, набрав в обновленный запрос, спасибо – Hayes121

Смежные вопросы