Vielleicht hat Jemand eine Idee (nein SQL ist nicht meine Stärke und es ist zum Haare raufen)
[mysql]SELECT accounts.name, mail.msgfrom, mail.msgto, mail.subject, mail.seen, mail.sent, petitionmail.petitionid, mail.messageid
FROM mail
LEFT JOIN petitionmail
USING ( messageid )
LEFT JOIN accounts ON ( accounts.acctid = mail.msgfrom
OR accounts.acctid = mail.msgto )
WHERE (
(mail.msgto = 'xxx' OR mail.msgfrom = 'xxx') OR (mail.msgfrom = '0' AND mail.msgto = 'xxx')
)
GROUP BY accounts.name
ORDER BY mail.seen ASC , mail.sent DESC[/mysql]
Das Ergebnis wird dazu genutzt um Gespräche gruppiert nach Benutzer auszugeben. Statt 18 Einzelbenachrichtungen, wird nur noch ein gruppiertes Ergebnis mit dem Namen der Kontaktperson ausgegeben.
Problem: Der zur Sortierung heran gezogene Timestamp stimmt nicht und wird recht willkürlich ausgewählt. Hier und da kommt es vor, dass das neueste Ergebnis heran geholt und korrekt sortiert wird. Dann friert dieses Ergebnis jedoch wieder ein und ändert sich ewig nicht. Obwohl neuere Nachrichten vorhanden sind, bleibt der ausgegebene Timestamp in der Übersicht unverändert. Und dann springt er plötzlich wieder auf den aktuellen Stand und friert aufs neue ein.
Ist schwierig zu erklären und mir erschließt sich in keiner Weise, wie es zu dieser falschen Ausgabe kommt.