Ich möchte die letzten 5 Nachrichten im Posteingang erhalten. Um die 5 neuesten IDs zu erhalten, muss ich dies verwenden:
SELECT
MAX(id)
FROM
samtaler
WHERE
brukerid_mottaker = 1
GROUP BY brukerid_avsender
ORDER BY id DESC
LIMIT 5
Das Ergebnis sind die richtigen IDs, die ich brauche. Aber in der gleichen Abfrage möchte ich Daten aus der gleichen Tabelle auswählen, die Zeile, die die ID, die von dieser Abfrage oben zurückgegeben bekam.
Ich habe einige Dinge ausprobiert, Variablen und Self-Join, aber kein Glück:
select
p2.title,
p2.message,
@a:=max(p1.id)
from
samtaler p1
join samtaler p2
on (@a = p2.id)
where
p2.brukerid_mottaker = 1
group by p2.brukerid_avsender
order by p2.id DESC
limit 5
Warum funktioniert das nicht?
Dies sind die aktuellen Daten in der Datenbank: Ich möchte in diesem Fall die Zeilen 13 und 4 zurückgeben. Sorry für schlechtes Englisch.