メッセージを受信した順に表示する受信トレイをプログラムしようとしましたが、メッセージが読まれたかどうかによって、しばらくの間は機能しているように見えましたが、そうではありませんでした。たぶん、特定の状況下でのみ機能した可能性があります..
とにかく、ここに私の質問があります。
SELECT `id`, `from_userid`, `read`, max(sent) AS sent
FROM (`who_messages`)
WHERE `to_userid` = '41'
GROUP BY `from_userid`
ORDER BY `read` ASC, `sent` DESC
問題は、メッセージが間違った順序でグループ化されていることだと思います..新しいメッセージが存在する場合、受信トレイは常に既読として表示されます。新しいメッセージの適切な時刻を取得しますが、max(sent) を選択したため、これを推測しています。
私の論理は間違っていますか?または、すべての努力の結果、「すべての派生テーブルには独自のエイリアスが必要です」という結果になったので、並べ替えてからグループ化できますか