我有两个表格,我想用table2&#39s列中的值替换table1&#39s列中的部分值。
更好地解释: 我想将值放在列#34; name"从table2到column" name"在table1中,对于id为3-9的行。
我在Mysql workbench和MariaDB工作。
答案 0 :(得分:2)
最直接的方法是在SET
子句中使用子查询。
UPDATE table1
SET name = (SELECT t2.name
FROM table2 t2
WHERE t2.pid = table1.id)
WHERE id >= 3
AND id <= 9;
答案 1 :(得分:2)
@ stickybit的答案可能正常,但我认为我会使用JOIN提供替代方案,因为它比子查询和BETWEEN更有效,因为它使语法成为更简单:
UPDATE table1
JOIN table2
ON table1.id = table2.pid
SET table1.name = table2.name
WHERE table1.id BETWEEN 3 AND 9;
答案 2 :(得分:-1)
update table1 t1
set t1.name=t2.name from table1 t1 ,table2 t2
where t1.id=t2.id and id between 2 and 10