MySQL中A表資料UPDATE到B表

2021-10-12 04:54:27 字數 1083 閱讀 1325

場景1:表b:id,name,code三個欄位均有值;表a :id,name,code 其中id,name有值並且與表b相對應,code值為null。現在將b表中的code值更新到a表中。

方法1:id不能有重複:

update t_a a set a.code=

(select code from t_b b where b.id=a.id )

方法2:適合少量資料

update t_a a inner

join

(select code from t_b ) b set a.code=b.code;

場景2:表b:id,name,code,detail四個欄位均有值;表a id,name,code,detail其中id,name有值並且與表b相對應,code,detail值為null。現在將b表中的code和detail值更新到a表中。

方法1:

update t_a a set 

a.code=

(select code from t_b b where b.id=a.id )

, a.detail=

(select detail from t_b b where b.id=a.id )

;

方法2:

update t_a a inner

join

(select code, detail from t_b ) b set a.code=b.code, a.detail=b.detail;

場景3:將表b中資料全部更新到a中,存在即更新code欄位,不存在便插入新記錄

方法1:

insert

into t_a (id, name, code)

select id, name, code from t_b on

duplicate

keyupdate code=

values

(code);

存在即更新關鍵字:on duplicate key update

SQLSERVER中 多表鏈結的UPDATE 方法

錯誤方式 update 歷史庫存 inner join 平均單價 on 歷史庫存.產品編號 平均單價.產品編號 set 歷史庫存.期末金額 round 平均單價.領用平均單價 歷史庫存.期末數量,0 正確方式 update 歷史庫存 set 歷史庫存.期末金額 round 平均單價.領用平均單價 歷...

清除mysql表中資料

delete from表名 truncate table表名 不帶where 引數的delete 語句可以刪除 mysql 表中所有內容,使用 truncate table 也可以清空 mysql 表中所有內容。效率上truncate 比delete 快,但truncate 刪除後不記錄 mysql...

清除mysql表中資料

delete from表名 truncate table表名 不帶where 引數的delete 語句可以刪除 mysql 表中所有內容,使用 truncate table 也可以清空 mysql 表中所有內容。效率上truncate 比delete 快,但truncate 刪除後不記錄 mysql...