J'ai le tableau suivant et les valeurs suivantes: Je veux obtenir les colonnes id em> et link em> lorsque la valeur de l'heure est max,
Je peux utiliser une sous-requête pour la finition: p> Je ne sais pas comment finir sans utiliser de sous-requête, aucun conseil sera apprécié! P> une autre: p> Je veux obtenir: p> ou p> Que devrait-il Je fais? P> P>
3 Réponses :
Utilisez une sous-requête corrélée si votre version est MySQL 8.0+
Ensuite, utilisez Row_Number () CODE> P> select * from (
select a.*,row_number()over(partition by a.id order by a.time desc) rn
from test a
) b where b.rn=1
Désolé, je tiens à mettre à jour ma question, voudriez-vous y répondre! Merci
@ ABELARD2008 BTW Quelle version de MySQL vous avez utilisée si MySQL 8.0 est alors une solution plus facile est là
Merci, j'ai utilisé les deux versions 5.7 et 8.0 dans les différentes machines!
S'il vous plaît essayez ceci.
select A.id,A.time,A.link from test A
order by A.time desc
limit 1
ERREUR 1055 (42000): L'expression n ° 1 de la clause de la clause n'est pas en groupe par la clause et contient la colonne non gré "Test.Test.Tempe" qui ne dépend de manière non fonctionnelle des colonnes du groupe par clause; Ceci est incompatible avec sql_mode = seulement_full_group_by
Désolé, je tiens à mettre à jour ma question, voudriez-vous y répondre! Merci
Quelle version de MySQL vous avez testé? Il n'a pas fonctionné sous 5,7
Veuillez ajouter quelques explications à vos questions telles que d'autres peuvent en apprendre
Vous pouvez utiliser la limite ou le haut
limite (mysql): p> haut (MSSQL): p>
Êtes-vous sûr de cela? Je ne pense pas que top code> existe dans mysql