#sql #sqlite #join #sql-update #subquery
#sql #sqlite #Присоединиться #sql-обновление #подзапрос
Вопрос:
У меня есть база данных sqlite с двумя таблицами. Первая таблица (Raport_luna) содержит два столбца (user и in_Arbeit_ohne_AT), а вторая таблица (sqlite_sequence) содержит два столбца (seq и name). Я хочу скопировать значения из seq(sqlite_sequence) в in_Arbeit_ohne_AT (Raport_luna), где Raport_luna.user=sqlite_sequence.name но у меня есть ошибки в строке ‘FROM’.
Это мой код:
UPDATE Raport_luna
SET in_Arbeit_ohne_AT = sqlite_sequence.seq
FROM sqlite_sequence WHERE Raport_luna.user=sqlite_sequence.name;
Ответ №1:
В SQLite можно использовать коррелированный подзапрос:
update raport_luna r
set in_Arbeit_ohne_at = (select s.seq from sqlite_sequence s where s.name = r.user)
Если в исходной таблице могут быть «отсутствующие» имена, и вы не хотите устанавливать значение соответствующего столбца в null
в целевой таблице, вы можете добавить where
условие:
update raport_luna r
set in_Arbeit_ohne_at = (select s.seq from sqlite_sequence s where s.name = r.user)
where exists (select 1 from sqlite_sequence s where s.name = r.user)