关于update set from where

关于update set from where  

下面是这样一个例子:

两个表a、b,想使b中的memo字段值等于a表中对应id的name值   
  表a:id,name   
            1       王   
            2       李   
            3       张   
  表b:id,ClientName   
            1         
            2   
            3   
(MS SQL Server)语句:update   b  set   ClientName   =   a.name   from   a,b   where   a.id   =   b.id  

(Oralce)语句:update   b  set   (ClientName)   =  (SELECT name FROM a WHERE b.id = a.id)


(Mysql)语句:: UPDATE A, B SET A1 = B1, A2 = B2, A3 = B3 WHERE A.ID = B.ID


update set from 语句格式

当where和set都需要关联一个表进行查询时,整个 update执行时,就需要对被关联的表进行两次扫描,显然效率比较低。
对于这种情况,Sybase和SQL SERVER的解决办法是使用UPDATE...SET...FROM...WHERE...的语法,实际上就是从源表获取更新数据。

在 SQL 中,表连接(left join、right join、inner join 等)常常用于 select 语句,其实在 SQL 语法中,这些连接也是可以用于update 和 delete 语句的,在这些语句中使用 join 还常常得到事半功倍的效果。

Update T_OrderForm SET T_OrderForm.SellerID =B.L_TUserID
FROM T_OrderForm A LEFT JOIN T_ProductInfo   B ON B.L_ID=A.ProductID

用来同步两个表的数据!



Oralce和DB2都支持的语法:

UPDATE A  SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)


MS SQL Server不支持这样的语法,相对应的写法为:
UPDATE A  SET A1 = B1, A2 = B2, A3 = B3  FROM A LEFT JOIN B ON A.ID = B.ID




个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVER的写法:
UPDATE A SET A1 = B1, A2 = B2, A3 = B3 FROM A, B WHERE A.ID = B.ID

在Oracle和DB2中的写法就比较麻烦了,如下:

UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID)


Mysql的写法是:

UPDATE A, B SET A1 = B1, A2 = B2, A3 = B3 WHERE A.ID = B.ID

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

取消计算机触摸板,笔记本电脑触摸板如何打开和关闭

笔记本电脑触摸板怎么打开和关闭?现在用笔记本的用户都越来越多了,现在也有人把笔记本当电视使了。就是电视上看得到用笔记本联网也是能看到,电视看不到的笔记本电脑也能看到。但是笔记本上面有一个触摸板,现相信大家都用过。可是…

List数据多重规则排序

List集合进行排序时,很多人会考虑 冒泡、快速等排序算法,但是对于多重排序规则的话,算法就不太适用了。其实java.util.Collections已经提供了 sort的排序方法,并且能自己实现其排序规则。现在有个场景:我需要对一批优惠…

QQ显示服务器繁忙2013,在QQ空间发表日志的之后为什么样总是显示“服务器繁忙”?...

据小米方面介绍,小米手机认证空间帐号自2013年5月21日开通以来,框架,8mm加厚钢化玻璃,15mm防火板材质机壳3、在QQ空间发表日志的之后为什么总是显示“服务器繁忙”,发表不了日志?这个难题在我家电脑下终于存…

http sxyk.cdn_Discuz x3 开启cdn和https后链接修改教程

Discuz x3 开启cdn和https后链接修改教程开启支持https主要需要修改一下几个地方1. 、查找修改文件discuz_application.PHP :source/class/discuz/discuz_application.php (约第 187 行处): 查找:$_G[isHTTPS] ($_SERVER[HTTPS] && …

8.4. su - root

add a user to wheel group rootfreebsd:~ # pw usermod neo -G wheel rootfreebsd:~ # id neo uid1001(neo) gid1001(neo) groups1001(neo),0(wheel)freebsd# grep wheel /etc/group wheel:*:0:root,neo原文出处:Netkiller 系列 手札 本文作者:陈景峯 转…

oracle更改编码

背景:win764bit英文操作系统(支持中文)   oracle11G默认安装   从ZHS16GBK字符集导入数据库表现:plsql显示为乱码解决:1、查看并更改数据库的编码为ZHS16GBK $sqlplus system/oracleSQL> select * from v$nls…

she is so css什么意思,输入she is so什么意思 微信she is so什么梗

最近很多人都在微信玩she is so的小游戏,会出现很多不同的形容词很有趣,适合好友之间一起玩。而不少人也不明白输入she is so是什么意思?该怎么玩呢?下文具体介绍。微信输入she is so是什么意思在微信聊天对话框中输入she /he is …

transformer论文解读_【论文解读】ICLR2020 | 深度自适应Transformer

作者 | kaiyuan 整理 | NewBeeNLP一篇来自ICLR2020,facebook人工智能实验室的论文,关于改进Transformer推理速度的。论文地址:https://arxiv.org/abs/1910.10073写在前面大模型在困难任务上表现非常好,而小模型也可以在比较简单…

vs2017下开发C++MFC动态库实现

2019独角兽企业重金招聘Python工程师标准>>> 今天无意间浏览了一些关于vs2017新功能的介绍,特别是微软发部了Visual Studio Installer,这个集成安装工具简约的操作风格,丰富vs开发内容,真正打通了开发的“最后一公里”…

hadoop为什么出现

在很多领域里面,在现在这个时代下面,很多公司产生的数据太多了,数据量太大了。用原来的技术去做,有种捉襟见肘的感觉,要么在性能上面,要么在速度上面遇到了瓶颈,这个时候需要新的技术来解决&…

微信视频开发jquery mobile

功能 微信企业号里开发一个微视频功能,用于播放视频。技术 J2EE,前端ui是jquerymobile,HTML5,CSS3,开源视频插件:mediaelement-and-player.min.js 插件官网:http://www.mediaelementjs.com/视…

python加密程序_Python 简单的可逆加密程序

简单加密1.[代码][Python]代码#codingutf-8Description: 可逆的加密与解密Environment: python2.5.xAuthor:idehonggmail.comimport osimport sysclass Code(object):可逆的加密与解密def __init__(self, key "idehonggmail.com"):self.__src_key keyself.__key s…

eclipse中tomcat服务器locations不能修改,解决eclipse中Tomcat服务器的server location选项不能修改的问题...

解决eclipse中Tomcat服务器的server location选项不能修改的问题问题描述编辑tomcat服务器时,server locations无法编辑,如下图:解决方法在Eclipse菜单栏中选择window — show view — server 可以看到服务的面板,服务面板中可看到…

当create table as select 遇上大数据

统计24小时的红包感知专题,有1.5亿行以上的数据,Nokia给出的方法是先按小时执行算法,再汇总各个小时的执行结果。 算法中包含了大量的 sum(case when)计算。 专题里有5个小节,执行计划的时候,需要跑5次where条件不同…

mybatis源码分析(方法调用过程)

十一月月底,宿舍楼失火啦,搞得20多天没有网,目测直到放假也不会来了。。。 正题 嗯~,其实阅读源码不是为了应付面试,更重要的让你知道,大师是怎样去写代码的,同样是用Java,为啥Clint…

提取多个字段_动态合并多个工作表,数据再多也不怕

小伙伴们好啊,今天老祝和大家分享一个动态合并多个工作表的技巧。很多时候,咱们的数据是按照部门或是月份等项目,分别存放在不同工作表中的,要对这些数据进行分析汇总的时候,需要先将不同工作表中的数据合并到一起才可…

深入理解Oracle的并行操作【好文认真读】

请尊重原文作者,http://czmmiao.iteye.com/blog/1487568 -------------------------------------------------------------------------------- 并行(Parallel)和OLAP系统 并行的实现机制是:首先,Oracle会创建一个进…

服务器虚拟化性能瓶颈怎么办,如何突破虚拟化三大瓶颈

如果你希望在应用虚拟化技术的过程中不出现任何问题的话,那么显然这是不切合实际的期望。虚拟化技术能给你的数据中心带来诸多好处,但是为了可以利用虚拟化的优势,你需要了解可能会面对哪些问题。即使虚拟化技术已经被应用到了许多企业中&…

2017-2018-1 20155229 《信息安全系统设计基础》第十四周学习总结

2017-2018-1 20155229 《信息安全系统设计基础》第十四周学习总结 对“第三章 程序机器级表示”的深入学习 我选择这章的理由是第一次学的时候还是不太理解,老师也有说这章建议在认真学习,所以本周的学习任务是认真再次学习这一章c语言、汇编代码以及机器…

python中为什么推荐使用with_Python中的with关键字使用详解

这篇文章主要介绍了Python 中的with关键字使用详解的相关资料,在Python中,with关键字是一个替你管理实现上下文协议对象的好东西,需要的朋友可以参考下">在 Python 2.5 中, with 关键字被加入。它将常用的 try ... except ... finally ... 模式很方便的被复…