SELECT *
FROM messages
WHERE message_id IN (SELECT MAX(message_id)
FROM messages
GROUP BY if(sender_id > receiver_id, CONCAT(sender_id, receiver_id), CONCAT(receiver_id, sender_id))
)
Ich habe ein einfaches Messaging-System, wo Nachrichten 1 t 1 (keine Gruppen) sind. Ich möchte nur die neueste Nachricht zwischen zwei Benutzern abrufen.MySQL erhalten die neueste Nachricht zwischen 2 Personen
Das obige 'funktioniert', aber ich denke, ich sollte den maximalen Zeitstempel vs message_id verwenden, um die neuesten zu bekommen.
Mein Tisch ist:
message_id (unique, auto inc),
sender_id (Primary),
receiver_id (Primary),
time_date,
content
Dies funktioniert, aber es gibt die letzte Nachricht jeden Benutzer gesendet. Ich möchte das erhalten Letzte Nachricht, die zwischen zwei Benutzern ausgetauscht wurde. – ovg
Aktualisiert die Ans. Versuchen Sie es bitte, wenn es wie erwartet funktioniert. –