2015-05-04 3 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. Но мне нужно обновить только одну строку для каждого идентификатора на минимальной строке. Я могу сделать это в 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

Большое спасибо, я собираюсь попробовать это и надеюсь, что это будет ... –

Смежные вопросы