Обновить значения таблицы из другой таблицы с тем же именем пользователя

У меня есть две таблицы с одним и тем же столбцом с именем user_name, скажем table_a, table_b.

Я хочу, чтобы скопировать из table_b, column_b_1, column_b2, в table_b1, column_a_1, column_a_2, соответственно, где имя_пользователя совпадает, как это сделать в SQL-выражении?

Ответы на вопрос(1)

Решение Вопроса

UPDATE table_a
SET
      column_a_1 = (SELECT table_b.column_b_1 
                            FROM table_b
                            WHERE table_b.user_name = table_a.user_name )
    , column_a_2 = (SELECT table_b.column_b_2
                            FROM table_b
                            WHERE table_b.user_name = table_a.user_name )
WHERE
    EXISTS (
        SELECT *
        FROM table_b
        WHERE table_b.user_name = table_a.user_name
    )

ОБНОВЛЕНИЕ вsqlite3 не поддерживает предложение FROM, что делает это немного больше работы, чем в других RDBMS.

Если производительность неудовлетворительная, другой вариант может заключаться в создании новых строк для table_a с использованием выбора и объединения с table_a во временную таблицу. Затем удалите данные из table_a и снова заполните из временного.

 toto_tico11 мая 2018 г., 17:44
отвечая на мой собственный вопрос, это 3 раза в строке, смотрите ответ @Alejadro ...
 toto_tico25 апр. 2017 г., 13:28
Сколько раз здесь выполняется соединение? только 3 раза или вместо 3 раз за строку в table_a? (мой SQL ржавый)
 Jim Geurts04 апр. 2012 г., 00:54
Мне пришлось исключить часть table_a из левой части аргумента set, чтобы заставить это работать. Используя ответ выше, выглядитcolumn_a_1 = (SELECT table_b.column_b_1 FROM table_b WHERE table_b.user_name = table_a.user_name )
 Abror Esonaliyev15 мая 2017 г., 08:47
большое спасибо вам
 zerocog18 окт. 2016 г., 23:56
Этот ответ помогает понять более подробно, как скопировать ответ, размещенный наstackoverflow.com/questions/17267417/...

Ваш ответ на вопрос