Einfach genial, Yaslaw! Vielen vielen Dank! Mit deiner Hilfe hab ich die query nun endlich funktionsfähig!
Hab noch ein paar Sachen hinzugefügt (Prüfung ob die Nachricht gelöscht / archiviert wurde) und ein paar Klammern waren zuviel.
Hier das Endergebnis:
Nochmals ein Riesen großes Danke Yaslaw!
Gruß
Chans
Hab noch ein paar Sachen hinzugefügt (Prüfung ob die Nachricht gelöscht / archiviert wurde) und ein paar Klammern waren zuviel.
Hier das Endergebnis:
Code:
SELECT
msg.user_2,
msg.msg_date,
msg.message,
msg.status
FROM
(
SELECT
user_1,
user_2,
MAX(msg_date) AS max_msg_date
FROM
(
SELECT
{$uid} AS user_1,
IF(sender = {$uid}, recipient, sender) AS user_2,
UNIX_TIMESTAMP(`date`) AS msg_date
FROM
user_messages
WHERE
IFNULL({$uid} IN (recipient, sender), FALSE)
) AS dat
GROUP BY
user_1,
user_2
) AS max_dat
INNER JOIN (
SELECT
{$uid} AS user_1,
IF(sender = {$uid}, recipient, sender) AS user_2,
message,
UNIX_TIMESTAMP(`date`) AS msg_date,
status
FROM
user_messages
WHERE
IFNULL({$uid} IN (recipient, sender), FALSE)
&& archived != 0
&& deleted != 0
) AS msg
ON msg.user_1 = max_dat.user_1
AND msg.user_2 = max_dat.user_2
AND msg.msg_date = max_dat.max_msg_date
ORDER BY
msg_date DESC
Nochmals ein Riesen großes Danke Yaslaw!
Gruß
Chans