程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 將列更新從一個表傳遞到另一個表

將列更新從一個表傳遞到另一個表

編輯:關於MYSQL數據庫

問:怎樣在一個UPDATE語句中使用表B的三個列更新表A中的三個列?

答:對這個問題,您可以使用強大的關系代數。本頁中的代碼說明了如何組合使用FROM子句和JOIN操作,以達到用其他表中數據更新指定列的目的。在設計關系表達式時,您需要決定是否需要單一行匹配多個行(一對多關系),或者需要多個行匹配被聯接表中的單一行以更新所有行(多對一關系)。

在一對多關系中,SQL Server始終使用它找到的最後一行更新數據。但是,您無法控制最後一行所在的位置。在多處理器的計算機上,查詢可能是同步進行的,相同的查詢最後一行的位置可能會不同。因此,Microsoft建議盡量不要使用一對多關系。

如果待更新的表與FROM子句中的表相同,並且FROM子句只包含對該表的一個引用,別名可能未被指定。如果待更新的表在FROM子句中出現了多次,只有該表的一個引用可以省略表的別名,對該表的所有其他引用必須包含一個表別名。

USE tempdb
GO
CREATE TABLE #t1 (c1 int NOT NULL, c2 char(5), c3 char(5),
c4 char(5))
GO
CREATE TABLE #t2 (c1 int NOT NULL, c2 char(5), c3 char(5),
c4 char(5))
GO


--數據賦值
INSERT #t1 values (1,'hello','there','fred')
INSERT #t2 values (1,'how','are','you?')


--更新數據
UPDATE #t1 SET #t1.c2 = #t2.c2, #t1.c3 = #t2.c3,
#t1.c4 = #t2.c4
FROM #t2
WHERE #t1.c1 = #t2.c1


--檢查結果
SELECT * FROM #t1

—Microsoft SQL Server開發團隊

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved