Tenias razón, había mezclado claves primarias con lo que no eran.
Ahora tengo otro problema, según la documentación que tengo, no explica como se pueden actualizar todos los registros de una tabla mediante select anidados. He intentado esto, pero falla,...
mysql> update tabla
-> set id_1 =
-> (select (t1.id_1-SUM(t2.id_2)), t1.producto
-> from tabla2 t2, tabla1 t1
-> where t1.producto=t2.producto
-> group by t1.producto)
-> where EXIST
-> (select t1.id_1, t2.producto
-> from tabla1
-> );