Abfragen des maximalen Datums innerhalb einer Join-Anweisung für MySQL
Um historische Speicherorte eines Datensatzes in MySQL abzurufen, können Sie eine JOIN-Anweisung verwenden . Wenn jedoch Leistungsprobleme und doppelte Daten in den Ergebnissen auftreten, ist ein geänderter Ansatz erforderlich.
Geänderte Abfrage
Um nur die letzte Änderungszeit für jede Datensatz-ID abzurufen und Ort, berücksichtigen Sie die folgende Abfrage:
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
Schlüsseländerung
Die Die Änderung liegt in der Unterabfrage:
SELECT received_id, MAX(date_modified) maxmodify FROM transactions GROUP BY received_id
Diese Unterabfrage ruft das maximale Datum für jede empfangene_ID ab.
Beitritt am Maximum
Die Hauptabfrage dann Verbindet diese Unterabfrage mit zwei Bedingungen:
Durch den Beitritt am maximalen Datum eliminieren Sie Duplizieren Sie Ergebnisse und erfassen Sie nur die letzten Standortänderungen.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von JOIN-Anweisungen effizient die neuesten Standortdaten in MySQL abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!