2011-04-17 20 views
2

我試圖用一個查詢來更改兩個表中的兩個值,但兩個表的列名是不同的。但是,它們都是主鍵。MySQL:用不同的列名更新多個表?

到目前爲止,我已經嘗試了大量代碼的變化,這裏是在簡單的代碼重寫了類似的變化,所以我的目的是更明確:

update table1, table2 
set table1.entry = 5, table2.id = 5 
where table1.entry and table2.id = 1; 

兩個表我想在列名更改有不同的名稱(因此「入口」和「ID」)。我知道如何在Excel中使用CONCATENATE來做到這一點,但我想知道這是否可以通過JOIN查詢來完成?

在此先感謝。

回答

2

我不知道我理解你的問題,但對於

update table1, table2 
set table1.entry = 5, table2.id = 5 
where table1.entry = 1 and table2.id = 1; 
+0

當然我的僞代碼更接近的答案比什麼別的我試過了。謝謝你,德蘭。 – rahlzel 2011-04-17 17:41:43

+0

沒問題,樂意幫忙! – 2011-04-17 23:28:51

0

那是很簡單的,如果你有兩個表的公用標準,並可以通過使用一個連接來完成。 對於示例假設你有一些共同的實體的兩個表中,只使用此查詢,

update table1 t1 join table2 t2 on t1.commonColumn=t2.commomColumn 
set t1.entry=5,t2.id=5 where t1.entry=1 and t2.id=2 

希望這有助於!

1

既然你要更新這兩個領域是主鍵,只有一行將在每個表更新,沒有必要加入:

update table1 
set table1.entry = 5 
where table1.entry = 1 ; 

update table2 
set table2.id = 5 
where table2.id = 1 ;