2 Stimmen

Erweiterte Abfrage mit mysql: Variablen/Unterabfragen?

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X