如何更新重复条目中的单个行

时间:2015-05-04 05:15:59

标签: php mysql

我有两个表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

在这种情况下,我需要从t2更新t1。但我需要在最小行上为每个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中这样做。有什么想法做这样的事情

1 个答案:

答案 0 :(得分:0)

您需要调整语法remove 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