Heim >Datenbank >MySQL-Tutorial >Wie wähle ich in einem SQL-Join nur die aktuellsten Standortdaten aus?

Wie wähle ich in einem SQL-Join nur die aktuellsten Standortdaten aus?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-04 17:47:11762Durchsuche

How to Select Only the Most Recent Location Data Within a SQL Join?

Auswählen des maximalen Datums innerhalb eines Join-Vorgangs

Um historische Standorte für einen bestimmten Datensatz abzurufen, berücksichtigen Sie die folgende Abfrage:

SELECT l.location, t.transaction_id, t.date_modified
FROM transactions AS t
INNER JOIN (
  SELECT
    received_id,
    MAX(date_modified) AS maxmodify
  FROM transactions
  GROUP BY
    received_id
) AS max_record
  ON (
    t1.received_id = max_record.received_id
  )
INNER JOIN locations AS l
  ON (
    l.location_id = t.location_id
  )
INNER JOIN received AS r
  ON (
    r.received_id = t.received_id
  )
WHERE
  t.received_id = '1782'
ORDER BY
  t.date_modified DESC;

Diese Abfrage gibt eine Liste von Orten für einen bestimmten Datensatz zurück, enthält jedoch mehrere Einträge für denselben Ort und dasselbe Datum. Um sicherzustellen, dass für jeden Standort nur das Datum der letzten Änderung angezeigt wird, verwenden 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) AS maxmodify
  FROM transactions
  GROUP BY
    received_id
) AS max_record
  ON (
    max_record.received_id = t1.received_id AND max_record.maxmodify = t1.date_modified
  )
JOIN locations AS l
  ON (
    l.location_id = t1.location_id
  )
JOIN received AS r
  ON (
    r.received_id = t1.received_id
  )
WHERE
  t1.received_id = '1782'
ORDER BY
  t1.date_modified DESC;

Die Schlüsseländerung ist das Hinzufügen der Join-Bedingung, die sicherstellt, dass der ausgewählte date_modified-Wert für jeden Datensatz der Maximalwert ist . Dadurch wird sichergestellt, dass nur die zuletzt aktualisierten Standortinformationen angezeigt werden.

Das obige ist der detaillierte Inhalt vonWie wähle ich in einem SQL-Join nur die aktuellsten Standortdaten aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn