Privates Nachrichtensystem. Auflisten der letzten Nachricht jeder Konversation

8

Sagen wir, dies ist die Datenbankstruktur:

%Vor%

Dies würde alle Nachrichten zurückgeben, die er empfangen oder gesendet hat,

Wie kann ich die letzte Nachricht von jeder Konversation abrufen, die der Benutzer 1 möglicherweise hat?

PD: Ich nenne es Konversation, wenn es eine oder mehrere Nachrichten zwischen zwei Benutzern gibt

-edit

Also mit diesem Datenbankinhalt:

Wir wollen die ID 4 und 6

bekommen     
Toni Michel Caubet 28.08.2012, 13:23
quelle

3 Antworten

7

Dies setzt voraus, dass id eine Auto-Increment-Spalte ist:

%Vor%

Angenommen, Sie haben id_from und id_to indiziert, wird diese Variante wahrscheinlich besser funktionieren, weil MySQL nicht weiß, was mit einem OR zu tun ist:

%Vor%

So erhalten Sie die Nachrichten für diese IDs:

%Vor%     
Marcus Adams 28.08.2012, 13:46
quelle
3
%Vor%

Auch wenn id_to und id_from in Ihrer Tabelle klein genug sind, um einen Überlauf in der Anweisung (id_to + id_from) zu verhindern, ist hier die einfache Abfrage:

%Vor%     
valex 28.08.2012 13:32
quelle
1

Diese Abfrage sollte funktionieren:

%Vor%

Siehe Beispiel @ sqlfiddle hier

Wenn Sie id als PRIMARY KEY haben und Nachrichten in einer chronologischen Reihenfolge protokollieren, kann sie weiter optimiert und vereinfacht werden als:

%Vor%     
Omesh 28.08.2012 13:30
quelle

Tags und Links