Es logico que no te funcione
Código:
set proxima=max(t2.fecha)
max es una funcion de agregacion que calcula el maximo en base al group by
prueba:
Código:
set proxima = (SELECT max(fecha),t1.codigo FROM tabla2 t2 inner join tabla1 t1 on t2.codigo=t1.codigo and t2.id=t1.id group by t1.codigo)
A tener en cuenta que esta sentencia te tira una select por cada registro que actualices!!!
Salu2