Nejsem si jistý, jestli úplně rozumím cíli, ale zkusil jsem to...
select
consultas.id as a,
consultas.clasificacion as cl,
consultas.paciente_id as b,
consultas.created,
imc_kg_m2 as im
from consultas
join signos_sintomas on signos_sintomas.consulta_id = consultas.id
join (select pacientes.id from pacientes where pacientes.id < 30) p on consultas.paciente_id = p.id
where imc_kg_m2 = (select imc_kg_m2 from consultas where created = (select max(created) from consultas where imc_kg_m2 is not null));
Abych chybu vyřešil, vytvořil jsem alias poddotazů a místo toho jsem je spojil. Jeden jsem odstranil, protože jsem nemohl přijít na to, proč tam je. Také jsem přidal where
udělat něco takového, co požadujete. Komentujte, pokud nedělá to, co chcete.