0
我試圖從表B.兩個數據值來更新表A中,我想我可以這樣做:如何使用表B中的數據更新表A?
UPDATE A
SET A.DATA1= B.DATA1, A.DATA2= B.DATA2
FROM TABLE1 A, TABLE2 B
WHERE A.ID = B.ID;
什麼是正確的語法?
我試圖從表B.兩個數據值來更新表A中,我想我可以這樣做:如何使用表B中的數據更新表A?
UPDATE A
SET A.DATA1= B.DATA1, A.DATA2= B.DATA2
FROM TABLE1 A, TABLE2 B
WHERE A.ID = B.ID;
什麼是正確的語法?
經典(非顯而易見)標準的SQL答案是:
UPDATE A
SET (Data1, Data2) = ((SELECT B.Data1, B.Data2
FROM B
WHERE B.ID = A.ID))
WHERE A.ID IN (SELECT B.ID FROM B);
相關聯的子查詢對每個匹配的行中的A. UPDATE上的生成一個結果行(大概)從乙WHERE子句可防止您在B中沒有匹配行的情況下使數據A無效。雙括號不是偶然的拼寫錯誤。
這是很難寫的,所以大多數DBMS提供了一個非標準的機制來更新連接,但是所用的語法因DBMS而異。
對於SQL Server,我會做:
UPDATE A SET
A.DATA1= B.DATA1,
A.DATA2= B.DATA2
FROM TABLE1 A
JOIN TABLE2 B on WHERE A.ID = B.ID
您正在使用哪個數據庫管理系統? –