requête sql pour obtenir plus ancienne date
Si j'ai une table avec des colonnes id
, name
, score
, date
et je voulais exécuter une requête sql pour obtenir l'enregistrement où id = 2
la date la plus ancienne dans l'ensemble de données.
Pouvez-vous faire cela à l'intérieur de la requête ou avez-vous besoin de boucle après le fait?
Je veux obtenir tous les champs de cet enregistrement..
Vous devez vous connecter pour publier un commentaire.
Si vous voulez juste la date:
Si vous voulez toutes les informations:
Empêcher les boucles quand vous le pouvez. Boucles conduisent souvent à des curseurs et curseurs sont presque jamais nécessaire et très souvent vraiment inefficace.
Essayer
Été un moment depuis que j'ai fait sql, donc cela pourrait besoin de quelques ajustements.
À l'aide de "limite" et "haut" ne fonctionnera pas avec tous les serveurs SQL (par exemple, Oracle).
Vous pouvez essayer une requête plus complexe en pur sql:
Tout en utilisant le HAUT ou une sous-requête à la fois, je voudrais diviser le problème en plusieurs étapes:
De trouver la cible d'enregistrement
Inscrivez-vous pour obtenir d'autres domaines
Alors que cette solution, à l'aide de tables dérivées, c'est plus long, c'est:
Il est plus facile à tester que les parties de la requête peut fonctionner de manière autonome.
Il est auto-documenter que la requête directement reflète l'exigence
c'est à dire la dérivée de la table listes de la ligne where id = 2 avec la date la plus ancienne.
Il est extensible comme si une autre condition est nécessaire, cela peut être facilement ajouté à la table dérivée.