Comment sélectionner la date maximale dans une instruction de jointure
Dans MySQL, il est possible de récupérer la date maximale pour un attribut particulier dans un ensemble de données joint à l'aide de la fonction MAX(). Cette technique est couramment utilisée pour recueillir des données historiques ou identifier l'instance la plus récente d'un événement spécifique.
Considérez la requête suivante :
SELECT t1.received_id , t1.transaction_id , t1.date_modified , l.location FROM transactions t1 JOIN ( SELECT received_id, MAX(date_modified) maxmodify FROM transactions GROUP BY received_id) max_record ON max_record.received_id = t1.received_id AND max_record.maxmodify = t1.date_modified JOIN locations l ON l.location_id = t1.location_id JOIN received r ON r.received_id = t1.received_id WHERE t1.received_id = '1782' ORDER BY t1.date_modified DESC
Cette requête récupère l'ID du reçu, l'ID de la transaction, date de modification et emplacement de l'enregistrement portant l'ID « 1782 », où la date de modification correspond à la date maximale trouvée pour cet ID de reçu. Cela garantit que nous obtenons les dernières informations historiques pour l'enregistrement spécifié.
Le composant principal de la requête est la sous-requête suivante :
SELECT id,MAX(thing) max_thing FROM my_table GROUP BY id
Cette sous-requête identifie la valeur maximale de l'attribut thing. au sein de chaque groupe défini par l’attribut id. En joignant la table d'origine avec cette sous-requête, nous pouvons filtrer les enregistrements avec des dates non maximales, récupérant ainsi uniquement les données historiques souhaitées.
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!