2015-05-11 184 views
1
Table1: 
id name value 
=================== 
1 Jane 28 
2 Joe 35 

Table2: 
id name value integer 
========================= 
1 Jane 28  379 
2 Joe  30  325 
2 Joe  32  380 
1 Jane 28  385 

表1包含有關用戶的信息:ID,名稱和值。
表2包含有關更改的信息:ID,名稱,值和整數。
整數是一個值,它總是會增加並且每天大約改變兩次。mysql從另一個表中更新列

我想將表1中的值轉換爲特定的ID,並將該值轉換爲表2並將該值放在最後一行。

在這個例子中我想 ID:2 值:35 在表1至relace

ID:2 值:表2中32 。我需要使用整數以某種方式..

回答

0

如果interger告訴在table2最新的,那麼你可以使用update join作爲

update table1 t1 
join table2 t2 on t1.id = t2.id 
join ( 
    select max(`integer`) as `integer`,id 
    from table2 
    group by id 
)x 
on x.id = t2.id and x.`integer` = t2.`integer` 
set t1.value = t2.value 
where t1.id = 2 ; 
+0

極大的反響列。完美工作。 我可以誠實地說,我不是很好,與MySQL命令:) 有沒有任何簡單的方法,使其工作的另一種方式? 作爲更新Table1的值:35與表2的值32在ID:2 –

+0

好連接更新比選擇,然後循環好得多。如果你的加入密鑰被索引,那麼它可以在一段時間內處理數百萬的數據。 –