MySQL - Aktuellste Datensätze aus Tabelle ermitteln
Hallo,
ich habe eine Tabelle "aktionen_log" mit den folgenden Spalten
In der Tabelle werden Aktionen von Benutzern abgelegt.
Das Ergebnis der Abfrage
könnte z.B. so aussehen:
Nun benötige ich einen View, dessen Ergebnis lediglich die letzte Aktion jedes Benutzers anzeigt, z.B.:
Als Abfrage bekomme ich das hin:
Wenn ich die Abfrage aber in einen View packe, kommt die Fehlermeldung:
Wie bekomme ich das in einer View umgesetzt?
Danke
ich habe eine Tabelle "aktionen_log" mit den folgenden Spalten
- id
- uhrzeit
- benutzer
- aktion
In der Tabelle werden Aktionen von Benutzern abgelegt.
Das Ergebnis der Abfrage
Select * from aktionen_log
id uhrzeit benutzer aktion
---------------------------------------------------
1 20:00 user1 Aktion 1 ausgeführt
2 20:01 user3 Aktion 1 ausgeführt
3 20:02 user1 Aktion 2 ausgeführt
4 20:03 user2 Aktion 1 ausgeführt
5 20:04 user1 Aktion 1 ausgeführt
6 20:05 user2 Aktion 2 ausgeführt
Nun benötige ich einen View, dessen Ergebnis lediglich die letzte Aktion jedes Benutzers anzeigt, z.B.:
id uhrzeit benutzer aktion
---------------------------------------------------
2 20:01 user3 Aktion 1 ausgeführt
5 20:04 user1 Aktion 1 ausgeführt
6 20:05 user2 Aktion 2 ausgeführt
Als Abfrage bekomme ich das hin:
SELECT *
FROM aktionen_log
INNER JOIN(
SELECT MAX(id) AS aktuelle_id, benutzer
from aktionen_log
group by benutzer)
AS select2
ON select2.aktuelle_id = aktionen_log.ig
Wenn ich die Abfrage aber in einen View packe, kommt die Fehlermeldung:
ERROR: Error 1349: View's SELECT contains a subquery in the FROM clause
.
.
.
Fetching back view definitions in final form.
Could not get definition for funk.fahrzeugstatus from server
Could not get definition for funk.aktuelle_status_meldungen_ids from server
3 views were read back.
Wie bekomme ich das in einer View umgesetzt?
Danke
Please also mark the comments that contributed to the solution of the article
Content-Key: 265241
Url: https://administrator.de/contentid/265241
Printed on: April 23, 2024 at 09:04 o'clock
4 Comments
Latest comment
Moin,
machs doch so
Gruß jodel32
machs doch so
SELECT MAX(id) as id, uhrzeit,benutzer,aktion FROM aktionen_log GROUP BY Benutzer
Mit der Abfrage bekomme ich zwar die höchste ID jedes Benutzers, aber die Daten in den Spalten 'uhrzeit' und 'aktion' sind nicht unbedingt die, welche zu der jeweiligen ID gehören...
?? Könnte ich hier nicht nachvollziehen ...Klappt hier wunderbar ohne Fehler und falscher Zuordnung !