Используя SQLite, мне нужно обновить столбец таблицы1, используя значение из таблицы2. Перед выполнением оператора update
я извлек значение из таблицы 2, используя запрос ниже, и он работал без проблем
SELECT *,CAST(table2.val AS integer)
FROM table2, table1
WHERE table1.a = table2.x AND table1.b = table2.y;
Выше запрос даст мне извлеченный целочисленный тип table2.val
с правильным номером строки. Но когда я хочу обновить определенный столбец таблицы 1, используя извлеченное значение из запроса выше, это не даст мне результат, и запрос продолжит выполняться (бесконечно).
UPDATE table1
SET newval= (
SELECT CAST(table2.val AS integer)
FROM table2
WHERE table1.a = table2.x AND table1.b = table2.y;
)
Что-то не так с моим запросом? Обе мои таблицы не имеют первичного ключа, я не уверен, имеет ли он какое-либо отношение к нему.
Я пробовал тот же процесс в PostgreSQL, используя запрос ниже, и он работал хорошо.
UPDATE table1
SET newval= CAST(table2.val AS integer)
FROM table2
WHERE table1.a = table2.x AND table1.b = table2.y;
Я не знаю, почему мой SQLite-запрос не работает.