SQL 用一个表的数据更新另一张表
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,用表B的数据(B1列,B2)更新表A的A1,A2列SQL Server:update A SET A.A1 = b.B1,A.A2=B.A2 FROM A ,B WHERE A.ID1 = B.ID
千家信息网最后更新 2025年01月19日SQL 用一个表的数据更新另一张表
用表B的数据(B1列,B2)更新表A的A1,A2列
SQL Server:
update A SET A.A1 = b.B1,A.A2=B.A2 FROM A ,B WHERE A.ID1 = B.ID1 and A.ID2 = B.ID2;
Access:
update A, B set A.A1 = B.B1,A.A2=B.B2 where A.ID1 = B.ID1 and A.ID2 = B.ID2;--或update A INNER JOIN B ON A.ID1 = B.ID1 AND A.ID2= B.ID2 SET A.A1 = B.B1,A.A2=B.B2;
通过一条SQL语句一次更新多条数据.SQL语句写法略有不同,如下:
方法一:
Update T1set dc=(select dc1 from t2 where T1.A=T2.A1 AND T1.B=T2.B1)WHERE T1.AID in ( SELECT AID FROM T1 INNER JOIN T2 ON t1.A=T2.A1 AND T1.B=T2.B1)
注:在我标我红色的in地方如果把'in'换成'='将出错,但在下面的B种写法里就可以换成'=',变成C方法写法.
方法二:
Update T1set dc=(select dc1 from t2 where T1.A=T2.A1 AND T1.B=T2.B1)WHERE T1.AID in ( SELECT T1.AID FROM T2 WHERE t1.A=T2.A1 AND T1.B=T2.B1)
方法三:
Update T1set dc=(select dc1 from t2 where T1.A=T2.A1 AND T1.B=T2.B1)WHERE T1.AID = ( SELECT T1.AID FROM T2 WHERE t1.A=T2.A1 AND T1.B=T2.B1)
方法四:
Update T1set dc=(select dc1 from T2 where T1.A=T2.A1 AND T1.B=T2.B1)WHERE T1.A = ( SELECT T1.A FROM T2 WHERE T1.A=T2.A1 AND T1.B=T2.B1)
方法五:
Update T1set dc=(select dc1 from T2 where T1.A=T2.A1 AND T1.B=T2.B1)WHERE T1.A = ( SELECT T2.A1 FROM T2 WHERE T1.A=T2.A1 AND T1.B=T2.B1)
方法六:
Update T1set dc=(select dc1 from T2 where T1.A=T2.A1 AND T1.B=T2.B1)WHERE T1.A in ( SELECT T2.A1 FROM T2 WHERE T1.A=T2.A1 AND T1.B=T2.B1)
注:如果在上面方法改写成如下的写法将会出错。
Update T1 set dc=(select dc1 from T2 where T1.A=T2.A1 AND T1.B=T2.B1)WHERE T1.A in ( SELECT T1.A FROM T1 INNER JOIN T2 ON t1.A=T2.A1 AND T1.B=T2.B1)
此种方法将会更新掉所有符合T1.A in ()这个条件的数据,所以是不正确的, 所以不能这样写。
方法七:
Update T1set dc=(select dc1 from T2 where T1.A=T2.A1 AND T1.B=T2.B1 AND T1.DC=T2.DC1)FROM T1, T2WHERE T1.A=T2.A1 AND T1.B=T2.B1
方法八:
Update T1 set T1.dc=T2.dc1FROM T1INNER JOIN T2 ON T1.A=T2.A1 AND T1.B=T2.B1WHERE t1.A=T2.A1 AND T1.B=T2.B1
方法九:
Update T1set T1.dc=T2.dc1FROM T1, T2WHERE T1.A=T2.A1 AND T1.B=T2.B1
请特别注意以上方法中我用红色标记上的代码写法。
总节:虽然是一条简单的更新语名但也有多种写法,且每种写法各有优缺点。
大家是否还有更简单的写法或者更容易理解的写法?如果有请提出来一起讨论,谢谢!
说明测试环境:以上代码在MSSQL2005中验证是可行的.
注:此处我用灰色标记的部分可以去掉。
方法
写法
更新
数据
代码
标记
红色
语句
不同
可行
优缺点
地方
多条
多种
条件
灰色
环境
部分
面的
测试
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中国电信网络安全员
erp数据库恢复
分我乐网络技术
网络设备图标软件开发
东北大学网络安全怎么样
阿拉德之怒服务器是不是通用的
江西工业软件开发市场报价
广东正规软件开发费用是多少
南京客莱美网络技术
网络安全工程师评审
徐州智能化联想服务器服务商
湖北正规软件开发学习
将数据存到数据库 安卓开发
福建app应用软件开发公司
软件开发个人到税务局
如何在别人服务器装后台
网络安全运维苹果电脑能做运维吗
网络技术学徒招聘
上位机软件开发论坛
建党百年做好校园网络安全
建制镇数据库
大数据时代网络安全分析
谷歌服务器通道和任务队列
水利局网络安全保密自查自纠
渝中区网络安全审计系统咨询
连云区网络安全
关系数据库模型是什么
软件开发的通用方法有哪些
台州云软件开发项目
网络安全往届生找工作