Je ne suis pas sûr d'avoir bien compris le but, mais j'ai essayé...
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));
Pour résoudre l'erreur, j'ai aliasé les sous-requêtes et les ai jointes à la place. J'en ai enlevé un parce que je ne pouvais pas comprendre pourquoi il était là. J'ai également ajouté le where
faire quelque chose comme ce que vous demandez. Commentez si cela ne fait pas ce que vous voulez.