Ich kann einfach nicht herausfinden, wie Sie das Folgende tun.Mysql Query kombinieren zwei Spalten und erhalten eindeutige Werte von beiden
Was ich
haben ... ist eine MySQL-Tabelle "Mails" wie:
id | sender | recipient | date | content | read
---------------------------------------------------------------
1 | 3 | 2 | 2016-07-29 09:04:21 | hello | 1
2 | 2 | 3 | 2016-07-29 09:14:21 | hello | 1
3 | 1 | 2 | 2016-07-29 09:24:21 | hello | 1
4 | 1 | 3 | 2016-07-29 09:34:21 | hello | 0
5 | 1 | 1 | 2016-07-29 09:44:21 | hello | 1
6 | 3 | 1 | 2016-07-29 09:54:21 | hello | 0
7 | 1 | 1 | 2016-07-29 09:56:21 | hello | 1
8 | 1 | 3 | 2016-07-29 09:58:21 | hello | 0
9 | 2 | 2 | 2016-07-29 09:59:21 | hello | 0
Was ich brauche
... ist, einen Überblick zu bekommen, die neuesten Chatpartner für eine Person, wie der Benutzer mit der ID 1
(der Benutzer kann auch Nachrichten an sich selbst senden) wie
date | partner
2016-07-29 09:58:21 | 3
2016-07-29 09:56:21 | 1
2016-07-29 09:24:21 | 2
Egal ob der Benutzer Empfänger oder Absender ist und egal wie viele Nachrichten gesendet oder empfangen wurden. (I umfasste die Datumsspalte in der Beispielausgabe zu klären ich sie nach Datum, absteigend sortiert müssen, es muss nicht in das Endergebnis einbezogen werden)
Was ich versucht
SELECT DISTINCT sender,recipient
FROM mails
WHERE recipient=1 OR sender=1
ORDER BY date DESC
aber von Natürlich kombiniert es nicht die beiden Spalten. Die Ausgabe ist
sender | recipient
1 | 3
1 | 1
3 | 1
1 | 2
Wenn ich GROUP BY sender
fügen Sie es nicht die E-Mails anzuzeigen, in dem Benutzer 1 nur Empfänger ist.
Ich habe auch versucht die folgenden
SELECT
max(date) as d,
CONCAT(greatest(sender,recipient),"_",least(sender,recipient)) AS p
FROM mails
WHERE recipient=1 OR sender=1
GROUP BY p ORDER BY d DESC
, die zum Beispiel
d | p
2016-07-29 09:58:21 | 3_1
2016-07-29 09:56:21 | 1_1
2016-07-29 09:24:21 | 2_1
gibt Was groß zu sein scheint, kann ich nur die erste ID nehmen ... gezeigt, aber wenn ich Suche nach Benutzer-ID 2, gibt es
d | p
2016-07-29 09:59:21 | 2_2
2016-07-29 09:24:21 | 2_1
2016-07-29 09:14:21 | 3_2
... so ist es unklar, ob die erste oder zweite ID ist die ID des Partners.
Ergebnis
Ich bin ein bisschen verzweifelt. Jede Hilfe wäre großartig.
Beitrag der erwartete Ausgabe – jonju
Huh? Was ich erwarte, kann man im Bereich "Was ich brauche" sehen. Ich habe gerade erwähnt, dass das Datum col kein Muss ist. –