首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL替换来自另一个表的表中的值

SQL替换来自另一个表的表中的值
EN

Stack Overflow用户
提问于 2018-05-31 16:34:58
回答 3查看 7.5K关注 0票数 1

我有两个表,我想将表1列中的一部分值替换为表2列中的值。

为了更好地解释:

我希望在id为3-9的行上,将值放在从table2到table1的列"name“中。

我在Mysql工作台和MariaDB中工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-31 16:49:08

最直接的方法是在SET子句中使用子查询。

代码语言:javascript
复制
UPDATE table1
       SET name = (SELECT t2.name
                          FROM table2 t2
                          WHERE t2.pid = table1.id)
       WHERE id >= 3
             AND id <= 9;
票数 3
EN

Stack Overflow用户

发布于 2018-05-31 16:56:52

@stickybit的答案可能很好,但我认为我可以选择使用加入,因为它比子查询更高效,而在两者之间使语法变得更简单:

代码语言:javascript
复制
UPDATE table1
JOIN table2
ON table1.id = table2.pid
SET table1.name = table2.name
WHERE table1.id BETWEEN 3 AND 9;
票数 2
EN

Stack Overflow用户

发布于 2018-05-31 16:48:09

代码语言:javascript
复制
update table1 t1 
set t1.name=t2.name from table1 t1 ,table2 t2 
where t1.id=t2.id and id between 2 and 10
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50628974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档