2010-06-19 94 views
3

我需要每次更新表中另一個字段的內容時,使用表中另一個字段的內容更新表中某個數據字段的內容, 配對。我一直在嘗試這種語法,但我不能讓它正常工作,而不會給我一個錯誤。當兩個字段匹配時,MySQL查詢使用另一個字段的數據更新字段

UPDATE table1 
    SET field1 = table2.field1 
    FROM Table1,Table2 
WHERE Table1.entry = Table2.entry 
+0

FROM子句應該包含表名,而不是字段名。 – 2010-06-19 11:25:06

+0

是否保證每個'field2.entry'都有一個可能的'table2.field1'? – 2010-06-19 11:25:42

+0

從Table1中,Table2是正確的,我的部分是錯字,並且沒有每個field2.entry通常只有一個對應的field1值,但它可能有更多,在這種情況下,我並不在乎它複製哪個值。 – Joe 2010-06-19 11:30:00

回答

7

update ... from是sql server的語法。在MySQL中你可以直接使用多張表:

update 
    table1 t1 
    join table2 t2 on t2.field = t1.field 
set 
    t1.field1 = t2.matchingfield 
where 
    t1.whatever = t2.whatever 

全部是在MySQL的詳細更新reference page

相關問題