Heim >Datenbank >MySQL-Tutorial >Wie kann ich mithilfe von Inner Join und LIMIT den neuesten Status für jeden Dienst abrufen?
Auswahl aus zwei Tabellen mit Inner Join und LIMIT
Um den neuesten Status für jeden Dienst in zwei Tabellen abzurufen, Dienst und Status, an Inner Join kann verwendet werden.
Als Referenz dienen die vorhandenen Tabellen sind:
Dienst:
Spalten:
Status:
Spalten:
Das gewünschte Ergebnis ist der aktuelle Status für jeden Dienst, wie unten dargestellt:
id | name | status | timestamp |
---|---|---|---|
1 | Test1 | OK | October, 15 2015 09:08:07 |
2 | Test2 | OK | October, 15 2015 10:15:23 |
Die vorherige Aussage hatte Einschränkungen beim Abrufen der neuesten Version Status:
SELECT ser.id, ser.name, a.status, a.timestamp from Service ser inner join (select * from status order by Status.timestamp DESC limit 1) as a on a.service_id = ser.id
Um die korrekte Auswahl des neuesten Status sicherzustellen, ist eine Unterabfrage erforderlich, um den maximalen Zeitstempel für jeden Dienst zu ermitteln:
SELECT service_id, MAX(timestamp) AS MaxDate FROM status GROUP BY service_id
Diese Unterabfrage erstellt eine neue Tabelle mit zwei Spalten: service_id und MaxDate. Die Spalte „MaxDate“ stellt den neuesten Zeitstempel für jeden Dienst dar.
Mit dieser Unterabfrage kann die Hauptabfrage geändert werden, um die Service-Tabelle mit der Tabelle mit dem maximalen Zeitstempel zu verknüpfen:
SELECT ser.id, ser.name, s.status, s.timestamp FROM Service ser INNER JOIN status as s ON s.service_id = ser.id INNER JOIN ( SELECT service_id, MAX(timestamp) AS MaxDate FROM status GROUP BY service_id ) AS a ON a.service_id = s.service_id AND a.MaxDate = s.timestamp;
Durch Beitritt am Sowohl für die service_id als auch für das MaxDate wird nur der aktuelle Status für jeden Dienst angezeigt, um das gewünschte Ergebnis sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Inner Join und LIMIT den neuesten Status für jeden Dienst abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!