SQL 用一个表的数据更新另一张表
发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,用表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
千家信息网最后更新 2024年12月12日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安全错误
数据库的锁怎样保障安全
查询可以保存数据库
我的世界服务器动物
莱瑞软件开发有限公司怎么样
电子银行的网络安全技术
海葵网络技术有限公司
服务器机柜要多大电源
宗教网络安全形势分析
pop3服务器配置
旅馆网络安全使用责任书
青浦区软件开发厂家报价
企业密信忘记服务器怎么登录
网络安全七种追责
数据库触发安全检查
荷兰 代理 服务器
网络网络安全从事
网络安全工作室爆炸
网络安全检测师报考条件
界面编译类软件开发
原神天堂岛服务器怎么下载
西宁网络技术推荐厂家
网络安全重要论文1500
数据库应用技术 詹英
青岛鼎信软件开发加班
天河app软件开发价格
控制中心增加数据库
河北网商互联网科技
云上企业数据库
m c国际服服务器无尽贪婪
艳阳网络技术下载
局域网网络安全管理