Tout comme la question, j'ai également recherché des solutions connexes sur Internet. La plupart des réponses ressemblent à cette instruction SQL :
select Id,Ac count Id,Mark,max(Create Time ) as Latest from AccountMark as b group by AccountId
MySQL associé recommandé. tutoriels vidéo : "tutoriel mysql》
Utilisation de la fonction Max. Mais il semble y avoir quelque chose qui ne va pas dans les données que j'ai trouvées. Comme le montre l'image, dans les données en surbrillance, le champ Mark et le champ CreateTime ne correspondent pas du tout !
Que se passe-t-il ? Est-il fiable de regrouper dans après avoir utilisé la fonction Max ?
Il y a une autre déclaration :
select *,COUNT(AccountId) as Num from (select * from AccountMark order by CreateTime desc) `temp` group by AccountId order by CreateTime desc
Les données trouvées de cette manière sont correctes
Cependant, je dois créer une vue, La clause requête n'est pas autorisée à apparaître dans la vue dans Mysql. Quelqu'un peut-il me fournir une instruction SQL capable de détecter les données correctes sans qu'aucune clause n'apparaisse ? Merci!
Solution :
select * from AccountMark as b where not exists(select 1 from AccountMark where AccountId= b.AccountId and b.CreateTime<CreateTime )
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!