久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【MySQL】多表連接更新(update),,使用臨時表加快效率

 hncdman 2023-04-04 發(fā)布于湖南

@大吉

已于 2023-01-17 15:47:38 修改

4337

 收藏 6

分類專欄: 數(shù)據(jù)庫 文章標簽: mysql 數(shù)據(jù)庫 sql update TEMPORARY

版權

數(shù)據(jù)庫

專欄收錄該內(nèi)容

13 篇文章0 訂閱

訂閱專欄

場景

寫一個update語句,,需要關聯(lián)多個表。關聯(lián)一個表還好,,但是你要關聯(lián)四五個表:

update aTable a

inner join bTable b on a.id = b.id

inner join cTable c on b.define1 = c.subcode

inner join dTable d on d.id = c.subcode

set a.Demand_orgid = c.req_org_id

where xxx = xxx;


上面這個SQL,,在一個update里面連接了3個inner join。那么你會發(fā)現(xiàn)執(zhí)行速度慢的出奇,。

如果你使用left join,,那么會更卡幾倍,。這點有待考證,所以能用inner join連就用inner join 連吧,。

解決方案

MySQL為我們提供了一種臨時表,,可以應用于這種復雜數(shù)據(jù)更新的場景:

在MySQL中,臨時表是一種特殊類型的表,,它允許您存儲一個臨時結果集,,可以在單個會話中多次重用。

當使用JOIN子句查詢需要單個SELECT語句的數(shù)據(jù)是不可能或遇到瓶頸的時候,,臨時表非常方便,。 在這種情況下,我們就可以使用臨時表來存儲直接結果,,并使用另一個查詢來處理它,。

參考資料:https://www./mysql/temporary-table.html

MYSQL臨時表只能出現(xiàn)在【數(shù)據(jù)庫連接的單個會話中】。也就是說你重啟Navicat,,臨時表緩存就消失

那么解決方案就出來了,,你可以先使用select語句,將你所有需要關聯(lián)的條件整合成一張臨時表:

-- 創(chuàng)建臨時表

CREATE TEMPORARY TABLE tempTable0(

select a.resid,b.define1,c.reqid,a.id  from tableA a

inner join tableB b on a.id = b.id 

inner join tableC c on c.id = b.id

where c.id <> '10086'

);

-- 查看你的臨時表:

select * from tempTable0;


然后你就有了一張可以隨便玩的臨時表,。

最后寫更新語句的時候,,只需要寫一個inner join,連接這個臨時表,,就可以實現(xiàn)復雜數(shù)據(jù)更新了:

update tableA a

inner join tempTable0 b on a.id = b.id

set a.Demand_orgid = b.req_org_id;

1

2

3

補充:臨時表選擇數(shù)據(jù)庫,、刪除臨時表

臨時表是根據(jù)當前鏈接選擇的數(shù)據(jù)庫創(chuàng)建的

-- 選擇數(shù)據(jù)庫

use db1;

-- 創(chuàng)建臨時表

CREATE TEMPORARY TABLE tempTable0 (

  select  publishtime  from table0 as a 

  left join db3.bs as b on b.pu_billcode = a.upcode);

-- 選擇臨時表

  select * from db1.tempTable0;

-- 刪除臨時表

  DROP TEMPORARY TABLE IF EXISTS db1.tempTable0;


文章知識點與官方知識檔案匹配,可進一步學習相關知識

————————————————

版權聲明:本文為CSDN博主「@大吉」的原創(chuàng)文章,,遵循CC 4.0 BY-SA版權協(xié)議,,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/weixin_44757863/article/details/126332126

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多