Vedi se così va bene

codice:
select allievo.*,ifnull(tab3.es,0) as maggiore from allievo
left join (
select tab1.fk_allievo,tab1.es
from
(select fk_allievo, max(all_for_data) as es from allievo_formulario
group by fk_allievo) as tab1
left join allievo_formulario as tab2 ON tab1.es = tab2.all_for_data
where tab1.fk_allievo = tab2.fk_allievo) as tab3
on allievo.all_id = tab3.fk_allievo