2011-01-31 57 views
1

我有兩個具有相同結構的表。mysql - 更新表之間的行

OLD_TABLE看起來是(例如,而不是實際的表)是這樣的:

Name - DOB - id 
John - xxxx - 344 

NEW_TABLE看起來像這樣:

Name - DOB - id 
John - 1980 - 344 

凡NEW_TABLE填補了DOB列中的ID字段(獨特的),其餘結構在表格之間是相同的。我想更新old_table中的DOB字段,其中ID字段相同的new_table中的值(所以在上面的示例中,'id'= 344等,對於所有行和ids)。

我想使用的: INSERT INTO OLD_TABLE(DOB)SELECT DOB FROM NEW_TABLE WHERE ...

但後來我的MySQL知識落後了。我應該甚至使用INSERT還是可以在這裏使用UPDATE?我怎樣才能從old_table中取出DOB值,其中ID字段= new_table的ID字段?

謝謝..

回答

4
UPDATE old_table, new_table 
    SET old_table.DOB = new_table.DOB 
    WHERE old_table.id = new_table.id 

編輯:基於來自OP

的評論
UPDATE old_table, new_table 
    SET old_table.DOB = new_table.DOB 
    WHERE old_table.id = new_table.id 
     AND old_table.DOB = 'xxxx' 
     AND old_table.field4 = '-' 
+0

這很好,但如果我只想更新行WHERE old_table.DOB ='xxxx'AND old_table.field4 =' - '? – themerlinproject 2011-01-31 21:35:07

0

使用更新 UPDATE old table OT設置DOB =(從newTable選擇DOB NT其中nt.id = ot.id) 這樣的事情應該工作