Maison >base de données >tutoriel mysql >Comment interroger efficacement les données de localisation les plus récentes dans MySQL à l'aide des instructions JOIN ?

Comment interroger efficacement les données de localisation les plus récentes dans MySQL à l'aide des instructions JOIN ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-04 08:27:12967parcourir

How to Efficiently Query for the Most Recent Location Data in MySQL Using JOIN Statements?

Requête de la date maximale dans une instruction de jointure pour MySQL

Pour récupérer les emplacements historiques d'un enregistrement dans MySQL, vous pouvez utiliser une instruction JOIN . Cependant, lorsque vous rencontrez des problèmes de performances et des données en double dans les résultats, une approche modifiée est requise.

Requête modifiée

Pour récupérer uniquement la dernière heure de modification pour chaque ID d'enregistrement et l'emplacement, 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

Modification de clé

La modification réside dans la sous-requête :

SELECT received_id, MAX(date_modified) maxmodify FROM transactions GROUP BY received_id

Cette sous-requête récupère la date maximale pour chaque ID_reçu.

Rejoindre sur Maximum

La requête principale rejoint ensuite sur cette sous-requête en utilisant deux conditions :

  1. max_record.received_id = t1.received_id : garantit la correspondance des ID d'enregistrement.
  2. max_record.maxmodify = t1.date_modified : sélectionne uniquement les transactions avec la date maximale.

En vous inscrivant à la date maximale, vous éliminez les doublons résultats et capturez uniquement les changements d’emplacement les plus récents.

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