已解决:如何用sql语句更新某个表所有记录的指定列数据为另一列(另一个表的指定列)数据?

问题现象:

今天想到了一个这样的需求,如何用sql语句更新某个表所有记录的指定列数据为另一列(另一个表的指定列)数据?


问题分析:

从问题的需求可举例如下:

第一种: 假如现在有一个表 T 含有包括 id , t_id 在内的多个字段; 

现在想把 T 表 中 所有记录 id字段 这一列的数据, 修改为 T 表 t_id字段 这一列的数据;

(也就是将每一条记录的 id字段的值 修改为 t_id字段的值)

第二种: 假如现在有两个表 A , B : 其中 A表 含有 id 字段, 但不含有 t_id 字段;  B表 含有 id , t_id 字段;

现在想把 A 表 中 所有记录 id字段 这一列的数据, 修改为 B 表 t_id字段 这一列的数据;

(也就是将 A 表 中每一条记录的 id字段的值 修改为 B 表 t_id字段的值)

 

以上两种情况在学习工作中,很多小伙伴都会遇到过;这里我们先分析一下这两种情况的情况:

1.第一种是单个表中已经有了两个字段(id 和 t_id), 因此只需要基于单表做 update 操作即可;

2.第二种需要操作两个表,因为 A表 没有 t_id字段, 同时这两个表必然要有联系(A, B表都有id字段, 且A中所有的id在B中都能找到)才能进行修改成功.


解决方法:

第一种(单表操作): 执行以下代码即可:

update T

set id = t_id

 

第二种(多表操作): 代码如下:

update A

set id = B.qx_id (或 set A.id = B.qx_id )

from B

where A.id = B.id 

猜你喜欢

转载自blog.csdn.net/weixin_42585386/article/details/108647024
今日推荐