Maison  >  Article  >  base de données  >  MySQL obtient le dernier enregistrement après le regroupement

MySQL obtient le dernier enregistrement après le regroupement

大家讲道理
大家讲道理original
2017-05-28 11:18:402267parcourir

Comme le titre, j'ai également trouvé des solutions similaires sur Internet. La plupart des réponses ressemblent à cette instruction SQL :
select Id,AccountId,Mark,max(CreateTime) comme Dernier de AccountMark en tant que groupe b par AccountId
en utilisant 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 existe une autre instruction : sélectionnez *,COUNT(AccountId) comme Num from
(sélectionnez * dans l'ordre AccountMark par CreateTime desc) `temp`
groupe par AccountId ordre par CreateTime desc
Les données trouvées de cette manière sont correctes


Cependant, je dois créer une
vue, et les requêtes ne sont pas autorisées dans la vue dans Clause 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 :

sélectionnez * dans AccountMark comme b là où il n'existe pas (sélectionnez 1 dans AccountMark où AccountId= b.AccountId

et b.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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn