Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQL :comment la requête dans l'ordre SQL est créée dans ce cas

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.