SQL 用一个表的数据更新另一张表
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,用表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年11月06日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安全错误
数据库的锁怎样保障安全
软件开发为虚拟币开发
类似六元空间的数据库
应对计算机网络安全
vb查询数据库代码
即时通讯数据库分表
网络安全实践课后题
如何设置数据库初始值
校园卡管理系统数据库图表
潍坊市软件开发招聘信息
贵州网络安全系统好不好
中国5g网络安全吗
渲染服务器管理
天涯明月刀手游服务器好
启世互联网科技有限公司
数据库两个字段拼接
数据库优化的实践报告
河北java软件开发it技术
建邺区电商app软件开发
黄傲网络技术
汽车服务网络技术论文
绍兴瑞丰银行 软件开发
erp软件开发哪家便宜
数据库中的差
妈妈好网络技术有限公司怎么样
南昌管理类软件开发
谷歌服务器框架安卓8.1
辽宁仿威图服务器机柜云主机
洛阳岭钰网络技术有限公司
nc数据库
河南三本计算机数据库