MySQL обновление на основе выбора - PullRequest
1 голос
/ 18 ноября 2011
SELECT 
   table_1.id, 
   (SELECT SUM(amount) FROM table_2 WHERE table_1.id = table_2.bid) AS sum_total 
FROM table_1 
WHERE table_1.total!=0

Мне нужно обновить table_1.total, чтобы оно равнялось sum_total.

Любое поступление?

Ответы [ 3 ]

2 голосов
/ 18 ноября 2011

Этот простой запрос должен работать очень хорошо.

UPDATE 
   table_1 
SET 
   table_1.total = (SELECT SUM(amount) FROM table_2 WHERE table_1.id = table_2.bid) 
WHERE table_1.total!=0;
1 голос
/ 18 ноября 2011

Попробуйте ниже:

update table_1 as t1 left join (select SUM(amount) as totalamount ,id FROM table_1 group by id) as t2 on t1.id =t2.id 
 set  t1.total=t2.totalamount 

Пожалуйста, внесите необходимые изменения.

1 голос
/ 18 ноября 2011

Работает ли это для вас:

UPDATE table_1 set total = (SELECT SUM(amount) FROM table_1 WHERE table_1.id = table_1.bid) AS sum_total)
...