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 Dies setzt voraus, dass id
eine Auto-Increment-Spalte ist:
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:
So erhalten Sie die Nachrichten für diese IDs:
%Vor%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: