2016-02-07 2 views
0

В моем приложении мне нужно соединить две таблицы, и я использовал этот код:android.database.sqlite.SQLiteException: ошибка синтаксиса

Cursor shapes_cur = sq.getWritableDatabase().rawQuery("SELECT name from shapes INNER JOIN shapes ON shape_to_drug.id_shape=shapes.id WHERE shape_to_drug.id_drug =" + drug_id + " WHERE shape_to_drug.id_hp =" + hp_id, null); 

Но применение силы закрыто, и я получаю эту ошибку в LogCat:

android.database.sqlite.SQLiteException: near "WHERE": syntax error (code 1): , while compiling: SELECT name from shapes INNER JOIN shapes ON shape_to_drug.id_shape=shapes.id WHERE shape_to_drug.id_drug =360 WHERE shape_to_drug.id_hp =5 

ответ

4

у вас есть два ИНЕК в запросе следует использовать AND:

"SELECT s.name from shapes s INNER JOIN shapes shape_to_drug ON shape_to_drug.id_shape=s.id WHERE shape_to_drug.id_drug =" + drug_id + " AND shape_to_drug.id_hp =" + hp_id 
+0

спасибо, но теперь им получить неоднозначное имя столбца: имя (код 1) ошибка –

+1

@Amir_P Пожалуйста, задайте новый вопрос. Обязательно укажите полное сообщение об ошибке и строку кода, которая вызывает ошибку. –

+1

Проблема заключается в том, что вы должны добавить псевдонимы таблиц к вашему запросу, такие как «SELECT s1.name FROM forms s1 INNER JOIN shape s2 ...» и так далее. Я обновил ответ. –

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