У меня есть этот запрос в php mysql
столбец Update со строкой, если t1.column равно t2.column
UPDATE person a, activity b SET value="attended" WHERE a.name = b.name
Он отлично работает на PHP MySQL. Но как я могу выполнить этот запрос в sqlite для Android? Я знаю, как он отличается от подхода, использующего android sqlite.
Что я пробовал это, но он производит ошибку
db.execSQL("UPDATE person a, activity b SET value='attended' WHERE a.name = b.name");
Что такое правильный способ для этого запроса? пожалуйста, помогите
Это ошибка, я получаю
Sqlite exception: near "a": syntax error (code 1): while compiling: UPDATE person a, activity b SET value='attended' WHERE a.name = b.name
Так я уже избавился от псевдонимов и использовать этот вместо
db.execSQL("UPDATE person SET value= (SELECT name FROM activity WHERE person.name = acitivty.name");
Он возвращает имя обновленных значений.
Он нормально выводит null
, если строка не обновлена / не имеет такого же значения из другой таблицы?
| column |
-------------
| Doe, John |
| null |
| null |
| null |
@ FrankN.Stein Это ошибка. Исключение Sqlite: около «a»: синтаксическая ошибка (код 1): при компиляции: UPDATE person a, activity b SET value = 'visited' WHERE a.name = b.name –
Я думаю, что ошибка заключается в использовании псевдонима. Я не ожидаю в android sqlite, но я думаю, что вы не можете использовать UPDATE TABLE ALIAS, как вы пытаетесь сделать – Stefano
@Stefano Я пробовал это. db.execSQL («UPDATE person SET value = (SELECT name FROM activity WHERE person.name = acitivty.name»), но оно получает только имя, а не значение «посещаемое». Как его обновить, используя строку «Посещенные»? –