Mysql多表關(guān)聯(lián)更新方式
Mysql多表關(guān)聯(lián)更新
日常的開發(fā)中一般都是寫的單表update語句,很少寫多表關(guān)聯(lián)的update。
在MySQL中我們有幾種方法可以做到多表關(guān)聯(lián)更新:
在兩張表之間做關(guān)聯(lián),可以更新關(guān)聯(lián)的多張表
update ?biao1,表2 set 表1.列名=表2.列名 ?--外鍵或關(guān)聯(lián)字段 where 更新條件;--例如:表1.列名=表2.列名,或字段aa>1等等
通過 INNER JOIN,可以更新關(guān)聯(lián)的多張表
update 表1 inner join 表2 ? on ?表1.列名=表2.列名 ?--外表鏈接 ID set ?表1.列名=值;--更新的內(nèi)容
通過 LEFT JOIN ,可以更新關(guān)聯(lián)的多張表
update ?表1 left join 表2 ?on ?表1.列名=表2.列名 ?--外表鏈接ID set ?表1.列名=新值;
通過子查詢,只更新一張表
update 表1 set 表1.列名=(select ?字段 ?from ?表2 ?where ?表2.列名=表1.列名 );
Mysql多表關(guān)聯(lián)update
日常的開發(fā)中一般都是寫的單表update語句,很少寫多表關(guān)聯(lián)的update。
在MySQL中,update的多表連接更新和select的多表連接查詢在使用的方法上存在一些小差異。
來看一個具體的例子。
update table1 t1 ? ? inner join table2 t2 ? ? ? ? on t1.id = t2.id set t1.name=t2.name;
在上面的例子中,update關(guān)鍵字后跟的是一個多表關(guān)聯(lián)的結(jié)果集,MySQL直接將這個多表關(guān)聯(lián)的結(jié)果集看做一個單表,再在這個單表的基礎(chǔ)上做常規(guī)的update操作。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL的多版本并發(fā)控制MVCC的實現(xiàn)
MVCC就是多版本并發(fā)控制,本文主要介紹了MySQL的多版本并發(fā)控制MVCC的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12mysql5.7.19 winx64安裝配置方法圖文教程(win10)
這篇文章主要為大家詳細介紹了mysql5.7.19 winx64安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07MySql 8.0.16版本安裝提示已經(jīng)不使用“UTF8B3”而是使用“UTF8B4”問題
這篇文章主要介紹了MySql 8.0.16版本安裝提示已經(jīng)不使用“UTF8B3”而是使用“UTF8B4”問題 ,需要的朋友可以參考下2019-07-07如何解決mysqlimport: Error: 13, Can''t get stat of 的問題
本篇文章是對解決mysqlimport: Error: 13, Can't get stat of問題的方法進行了詳細的分析介紹,需要的朋友參考下2013-06-06mysqldump命令導(dǎo)入導(dǎo)出數(shù)據(jù)庫方法與實例匯總
這篇文章主要介紹了mysqldump命令導(dǎo)入導(dǎo)出數(shù)據(jù)庫方法與實例匯總的相關(guān)資料,需要的朋友可以參考下2015-10-10FROM_UNIXTIME 格式化MYSQL時間戳函數(shù)
對MYSQL沒有進行過深入的研究,基礎(chǔ)知識匱乏,一遇到問題只能手冊,看來要把MYSQL的學(xué)習(xí)安排進時間表了。2011-04-04徹底搞懂?dāng)?shù)據(jù)庫操作truncate delete drop關(guān)鍵詞的區(qū)別
這篇文章主要為大家介紹了數(shù)據(jù)庫操作truncate delete drop關(guān)鍵詞的區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析
這篇文章主要介紹了Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02