Entwickler-Ecke
Datenbanken - Abfrage neuestes ereignis pro ID
Aya - Fr 01.08.14 15:15
Titel: Abfrage neuestes ereignis pro ID
Hi,
ich habe eine MySQL Tabelle mit folgenden Spalten: "key, regionID, timestamp".
In der Tabelle werden zu bestimmten Ereignissen der timestamp (wann es passiert ist), sowie die regionID (wo es passiert ist) gespeichert.
Es gibt insgesamt 50 verschiedene Regionen und ich würde gerne den neuesten timestamp zu jeder Region wissen.
Gibt es da irgendeine Möglichkeit das in einem Query zu machen?
Also nicht indem ich 50x diesen Query mache:
SQL-Anweisung
1:
| SELECT `timestamp` FROM `events` WHERE `regionID` = ? LIMIT 0,1 |
sondern alles in einem mit 50 Zeilen als result - irgendwie machbar?
Danke,
Daniela
WasWeißDennIch - Fr 01.08.14 15:50
Versuch mal
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7:
| SELECT `regionID`, MAX(`timestamp`) FROM `events` GROUP BY `regionID` |
Aya - Fr 01.08.14 16:22
Funktioniert, cool! Vielen dank :D
Aya - Fr 15.08.14 23:22
Leider ist jetzt doch noch ein Problem aufgetreten... jede Zeile in der Tabelle hat auch einen "key" der unique und auto_increment ist.
Ich würde jetzt gern zusätzlich den Key zu dem MAX timestamp bekommen.. geht das irgendwie, ohne das ich das tiemstamp-field UNIQUE mache und dann per JOIN den Key hole?
jaenicke - Sa 16.08.14 08:02
Meinst du vielleicht das?
http://sqlfiddle.com/#!2/54ab9/2
SQL-Anweisung
1: 2: 3: 4: 5:
| select e1.regionID, e1.timestamp, e1.key from events e1 left outer join events e2 on e1.regionID = e2.regionID and e1.timestamp < e2.timestamp where e2.regionID is null order by e1.regionID; |
WasWeißDennIch - Sa 16.08.14 14:11
Oder auch
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| SELECT E.`regionID`, E.`timestamp`, E.`key` FROM `events` E WHERE `timestamp` = (SELECT MAX(`timestamp`) FROM `events` WHERE `regionID` = E.`regionID`) ORDER BY E.`regionID` |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!