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安全错误
数据库的锁怎样保障安全
信阳直播软件开发公司
四川网络安全专业最好的
数据库连接提示帐户已被锁定
网络安全检查铁路
计算机网络技术是什么大类
扶贫信息网络安全
swot分析网络安全工程师
数据库按月汇总数据
网络编程 服务器
搭建服务器涉及的技术问题
防治病毒网络技术
网络安全著名人员
游享星域网络技术公司
随州网络安全工程师
软件开发好还时游戏好
游戏软件开发哪个大学好
土巴士软件开发
泸州展厅多媒体软件开发
网络技术人员的工作总结
网络服务器维护实验
广东乐拼互联网科技有
无线传感器网络安全技术概论
虚拟专用网络技术简称
山西加工软件开发试验设备
网络安全自然危害的案例
考试过程中的网络安全
海南新能源软件开发性价比
阿里云服务器控制台
山东省春考网络技术技能
怎么安装数据库外部库