2015-05-04 24 views
3

我有两个表t1和t2更新单行如何在重复的条目

T1->

id   line  Amt   
----------- ----------- ----------- 
1   1   0 
1   2   0 
2   1   0 
2   2   0 
2   3   0 
3   3   0 
3   4   0 
3   5   0 
4   2   0 
4   3   0 

-------------------------- 

T2->

id   amt   
----------- ----------- 
1   500 
2   350 
3   750 
4   400 

在这种情况下,我需要更新T1从t2开始。但是我需要在最小行上为每个id只更新一行。我可以用做在MSSQL以下查询 -

update a set a.amt=c.amt from T1 a inner join (
select id,min(line) line from T1 group by Id) b 
on a.id=b.id and a.line=b.line 
Inner join T2 c on a.id=c.Id 

我想这样做的MYSQL。是否有任何想法,做这样的事情

+0

什么是此查询在mysql中的问题? – Jens

回答

0

您需要调整您的语法删除from条款,移动set条款后加入部分

update T1 a 
inner join (
    select id,min(line) line from T1 group by Id 
) b on a.id=b.id and a.line=b.line 
inner join T2 c on a.id=c.Id 
set a.amt=c.amt 

DEMO

+0

非常感谢,我会试试这个,希望它能做到... –