SQL заменяет значения в таблице из другой таблицы - PullRequest
0 голосов
/ 31 мая 2018

У меня есть две таблицы, и я хотел бы заменить часть значений из столбца таблицы1 на значения из столбца таблицы 2.

Чтобы лучше объяснить: enter image description here Я хотел бы поставитьзначения в столбце «имя» от таблицы 2 до столбца «имя» в таблице 1 в строках с идентификатором 3-9.

Я работаю в Mysql Workbench и MariaDB.

Ответы [ 3 ]

0 голосов
/ 31 мая 2018

Самый простой подход - использование подзапроса в предложении SET.

UPDATE table1
       SET name = (SELECT t2.name
                          FROM table2 t2
                          WHERE t2.pid = table1.id)
       WHERE id >= 3
             AND id <= 9;
0 голосов
/ 31 мая 2018

@ ответ stickybit может работать просто отлично, но я подумал, что дам альтернативу, используя JOIN , потому что он более эффективен, чем подзапрос, и BETWEEN , потому что он делает синтаксис aнемного проще:

UPDATE table1
JOIN table2
ON table1.id = table2.pid
SET table1.name = table2.name
WHERE table1.id BETWEEN 3 AND 9;
0 голосов
/ 31 мая 2018
update table1 t1 
set t1.name=t2.name from table1 t1 ,table2 t2 
where t1.id=t2.id and id between 2 and 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...