2009年3月5日 星期四

[SQL] MySQL 一行指令 複製 A Table 的值對應至 B Table 中

一切動作運行之前,請先備份資料庫!


假設有兩個 table ,依序為 a 跟 b。目的想透過一行 SQL 指令將 a table 中的 value 數值取出並存至 b table 中對應的 value。

















a
IDValue

















b
IDValue


如果 B 裡頭的 ID 皆出現在 A 裡頭,可用:


UPDATE `b` as B SET B.Value = (
   SELECT A.Value
   FROM `a` as A
   WHERE A.ID = B.ID
);


假設 B 裡出現某個 ID 是 A 沒有的,那上述的動作將會清掉 B 該 ID 在 Table 中原先的數值!要小心處理,若要避免這個現象,需改成:


UPDATE `b` as B , `a` as A SET B.Value = (
   SELECT AA.Value
   FROM `a` as AA
   WHERE AA.ID = B.ID
) where A.ID = B.ID ;


 


沒有留言:

張貼留言