SQL如何用表A更新表B
文章标题很短,因为问题的描述过于具体,标题就会显得过长。
这个问题更为准确地描述应该是这样:表结构雷同或者有相似字段的两张表A和B,如何用A表的字段数据去更新B表字段的数据?
操作方法:
1 update B
2 set B.clolumn_name = A.cloumn.name
3 from A,B
4 where A.ID = B.ID
实例验证。
俗话说,铁打的营盘流水的兵,政府也一样。政府内阁,会随着领导人的变更而发生变更。
分别创建两个表:cabinet和cabinet_new。
cabinet表的内容是在任美国政府内阁成员信息表。
cabinet_new表的内容是新总统的内阁成员信息表。
创建两个表并插入信息,语句如下:
1 create table cabinet
2 (
3 post VARCHAR(12),
4 name VARCHAR(32)
5 )
6
7 create table cabinet_new
8 (
9 post_new VARCHAR(12),
10 name_new VARCHAR(32)
11 )
12
13 INSERT INTO cabinet
14 VALUES ('总统','奥巴马')
15 INSERT INTO cabinet
16 VALUES ('国务卿','克里')
17 INSERT INTO cabinet
18 VALUES ('国防部长','盖茨')
19 INSERT INTO cabinet
20 VALUES ('财政部长','盖特纳')
21 INSERT INTO cabinet
22 VALUES ('司法部长','霍尔德')
23 INSERT INTO cabinet
24 VALUES ('商务部长','骆家辉')
25 INSERT INTO cabinet
26 VALUES ('能源部长','朱棣文')
27
28 INSERT INTO cabinet_new
29 VALUES('总统','特朗普')
30 INSERT INTO cabinet_new
31 VALUES('国务卿','蒂勒森')
32 INSERT INTO cabinet_new
33 VALUES('国防部长','马蒂斯')
34 INSERT INTO cabinet_new
35 VALUES('财政部长','努钦')
36 INSERT INTO cabinet_new
37 VALUES('司法部长','塞申斯')
38 INSERT INTO cabinet_new
39 VALUES('商务部长','罗斯')
40
41 select * from cabinet
42 select * from cabinet_new
执行结果:

随着奥巴马退职,新总统特朗普也即将上任,相应的,内阁成员也要更换。
对数据表来说,就是将cabinet表中的数据用cabinet_new更新。
根据上述操作方法,编写更新语句并做查询:
1 update cabinet
2 set cabinet.name = cabinet_new.name_new
3 from cabinet,cabinet_new
4 where cabinet.post = cabinet_new.post_new
5
6 select * from cabinet
7 select * from cabinet_new
执行结果:

有执行结果可以知道,更新成功,操作方法可行。
SQL如何用表A更新表B的更多相关文章
- sql server 跨IP库更新表字段(OPENDATASOURCE 、update)
--跨ip库更新表字段 update uat set goodsType=dev.goodsType from OPENDATASOURCE('SQLOLEDB','Data Source=127.0 ...
- MySQL创建表,更新表,删除表,重命名表
创建表 mysql> create table 表名( -> 列名 数据类型 是否为空 auto_increment, -> 列名 数据类型 是否为空... -> ... -& ...
- 根据多表条件更新表.............. 一条sql语句.............
CREATE TABLE a( NAME INT, age int ); CREATE TABLE b( height INT, weight int ); ,); ,); SELECT * FROM ...
- Activiti+oracle 启动项目时不能自动建表或更新表的问题分析及解决办法
现象描述:按照正常配置,第一次启动时不能自动建表 关键配置片段如下: <bean id="processEngineConfiguration" class="or ...
- db2重组所有表和更新表统计信息
1.构建db2admin模式下的所有表的重组语句: select ' reorg table '||TABLE_NAME||';' from sysibm.tables where TABLE_SC ...
- SqlServer 循环建表、删除表、更新表
常用于分库分表 1.批量删除 declare @outter int declare @inner int ) ) ) begin set @tablePrefix='BankPayOrder_'+c ...
- SQL 将2张不相关的表拼接成2列,批量更新至另一张表
update SO_Master set LotteryNo=t2.LotteryNo,UpdateTime=GETDATE() --select sm.LotteryNo,sm.SysNo,t2.L ...
- Oracle\MS SQL Server Update多表关联更新
原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表 ...
- SQL Server中的Merge关键字 更新表数据
简介 Merge关键字是一个神奇的DML关键字.它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句.MSDN对于Merge的解释非常的短小精悍:”根 ...
随机推荐
- CCF201903-2二十四点
思路描述:最开始的思路是拿一个栈来存储数据和符号,在动手实践的过程中发现行不通,单个数字的char和int转换可以,但是加起来的数据两位数字就很难处理了. 然后就去看了看别人的思路,给了我一个很好的启 ...
- HTML表格CSS美化
效果展示 style.css html{ width: 100%; height: 100%; overflow: hidden;}body{ width: 100%; height: 100%; f ...
- java JDK的安装和环境配置(windows10)
1.下载JDK,安装.http://www.oracle.com/technetwork/java/javase/archive-139210.html 下载地址 2.配置JDK. (右键我的电脑 ...
- vue中引入jq
1.cnpm install jquery2.在webpack.base.conf.js中加入一行代码 const webpack=require("webpack") ----- ...
- SpringBoot注解自动扫描-底层实现
分析上文Spring Boot快速入门 @SpringBootApplication public class HelloWorldApplication { public static void m ...
- mysql-cluster-gpl-7.5.10-linux-glibc2.12-x86_64.tar.gz (有必要解释一下)
大部分软件我们接触的时候会发现,起的名称有点怪异,所以我觉得有必要解释一下. 比如: mysql-cluster-gpl-7.5.10-linux-glibc2.12-x86_64.tar.gz 名称 ...
- Servlet 标准下载地址
Servlet 标准下载地址 java 技术标准开发社区 https://jcp.org/ 3.0 https://jcp.org/aboutJava/communityprocess/mrel/js ...
- 【面试普通人VS高手系列】Spring Boot的约定优于配置,你的理解是什么?
对于Spring Boot约定优于配置这个问题,看看普通人和高手是如何回答的? 普通人的回答: 嗯, 在Spring Boot里面,通过约定优于配置这个思想,可以让我们少写很多的配置, 然后就只需要关 ...
- eBPF+Ftrace 合璧剑指:no space left on device?
本文地址:https://www.ebpf.top/post/no_space_left_on_devices 最近在生产环境中遇到了几次创建容器报错 "no space left on d ...
- C++五子棋(六&七)——游戏结束
规则原理 如图 判断游戏结束 chessData.h //row,col 表示当前落子 bool checkWin(ChessData* game, int row, int col); 横.竖.斜( ...