關于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.pswp.cn/news/539771.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539771.shtml
英文地址,請注明出處:http://en.pswp.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 ... 模式很方便的被復…