Update 兩個表之間數據更新

兩個表之間有相同的屬性,如何將a表中的屬性更新爲b表中屬性的值?

這裏有一篇博文有這麼一個問題,可以參照這個方法解決。

也就是:

Update 要更新表 Set 要更新字段 = 新值 From 多個表 Where 條件
注意:update後面是不能跟多表的,但可以跟在From子句後

 

今天我們做的一個系統數據庫中已經有一張表,裏面的數據是用存儲過程插入的,今天經理看了說有兩個字段的內容錯位了,那麼多的記錄,鬱悶了!!!!

後來想了一個辦法,把這張表備份了一個,也就是用備份的這張表內容去更新原來的表,用id關聯

update語句:

1.

update t1
         set t1.c2 = t2.c2
       from t2

where t1.c1 = t2.c1

2.

Update t1
         set t1.c2 = t2.c2

from t1 inner join t2
         on t1.c1 = t2.c1

二、FROM 子句中指定的表的別名不能作爲 SET column_name 子句中被修改字段的限定符使用
     例如,下面的內容無效:

UPDATE titles

SET t.ytd_sales = t.ytd_sales + s.qty

FROM titles t, sales s

WHERE t.title_id = s.title_id

AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

若要使上例合法,請從列名中刪除別名 t 或使用本身的表名

1.

UPDATE titles

SET ytd_sales = t.ytd_sales + s.qty

FROM titles t, sales s

WHERE t.title_id = s.title_id

AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

2.

UPDATE titles

SET titles.ytd_sales = t.ytd_sales + s.qty

FROM titles t, sales s

WHERE t.title_id = s.title_id

AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章