копировать из другой таблицы sqlite

#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)