Dovrebbe essere una cosa del genere

select * from (
select animali, campo_quantita from animali inner join tabella_quantita
on animali.id = tabella_quantita.id
order by campo_quantita desc limit 3) as tabDerivata order by animali;