2013-12-12 72 views
0

我正在嘗試根據表B中的行更新表A中的行。表A看起來是這樣的:用表B中所有不同的數據更新表A中的行

a_id | NAME | VALUE | 
-------------------------- 
1 | n1  | NULL | 
2 | n2  | NULL | 

和表B看起來是這樣的:

b_id | VALUE  | 
---------------------- 
1  | var1  | 
2  | var2  | 
3  | var3  | 

我怎樣才能得到更新,此表A

a_id | NAME | VALUE | 
-------------------------- 
1 | n1  | var1 | 
2 | n2  | var1 | 
3 | n1  | var2 | 
4 | n1  | var3 | 
5 | n2  | var2 | 
6 | n2  | var3 | 

回答

1

最簡單的方法是創建一個與A 相同結構的新表AA並執行

Insert into AA Select A._id,a.NAME,b.Value From A, B 

跌得重命名AA到A或空A和由AA

選擇到它不能只是一個更新語句記錄需要插入爲好。

這被稱爲笛卡爾產品,通常是一個錯誤。請理解你最後在A行中的行數* B中的行數。2 * 3不是問題,2,000,000 * 3,000,000 ...

相關問題