關於聯表更新

2021-08-30 21:23:37 字數 802 閱讀 6003

例項sql:

update tblnmdevice t1 set t1.keystr = (select t2.displayname from tblbusinesssys t2 join tblbusinessdeviceunion t3 on t2.tbluuid = t3.businessid where t3.devicepath =t1.devicepath)

where exists (select 1 from tblbusinessdeviceunion t4 where t4.devicepath = t1.devicepath);

比如a 表中的某個字段複製到b表中指定的字段,前提是a表中主鍵和b表的外來鍵對應的記錄才更新;

update sfinaareacode a set a.areano=

(select b.areano from sareacode b where a.finaareacode=b.areacode)

where exists (select 1 from sareacode b where a.finaareacode=b.areacode)

解釋:where exists (select 1 from sareacode b where a.finaareacode=b.areacode)表示

這條記錄存在,也就是說沒有記錄是不更新,這樣可以保證不在這個記錄範圍內的

a.areano不會被更新

當(select 1 from sareacode b where a.finaareacode=b.areacode)存在的時候,才更新資料 1可以替換其它的值,都可以,只是乙個常量

聯表查詢的更新

背景 之前寫過一篇關於資料庫聯表查詢的部落格 再看資料庫 6 連線 主要講了連線的型別,以及如何使用連線進行多表查詢。本篇部落格就是在這基礎上延伸而來的。首先,我們先來看乙個聯表查詢的例子。use testunion 員工集合 create table staffunion id int prima...

關於SQL聯表查詢

一 natural join 自然連線 兩張表通過natural join連線的時候,相當於有個隱含的where子句,對兩張表中同名的對應列相比較看是否相等。二 cross join 建立笛卡爾積 對兩張表通過交叉聯合產生第三張返回結果集的表。相當於普通的連線。三 inner join 內連線 內連...

mysql聯表更新 MySQL開發規範

一 基礎規範 1 使用innodb儲存引擎 2 資料庫字符集使用utf8,校對字符集使用utf8 general ci 3 所有表 欄位都盡量新增注釋 4 庫名 表名 欄位名使用小寫字母,禁止超過32個字元,須見名知意 5 非唯一索引以 idx 欄位1 欄位2 命名,唯一索引必須以 uniq 欄位1...