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

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

a
ID Value

b
ID Value

如果 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 ;

 


changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()