メッセージング システムを構築しており、各送信者から指定された受信者への最後のメッセージのみを抽出する必要があります。したがって、3 人がそれぞれ 5 つのメッセージ (合計 15 メッセージ) を受信者に送信した場合、3 つのエントリを取得する必要があります。各送信者からの最後のメッセージ。
これが私の現在のSQLです:
SELECT
messages.*,
user_accounts.uacc_id,
user_accounts.uacc_username,
user_profiles.upro_image_name
FROM messages
LEFT JOIN user_accounts
ON messages.msg_from_uacc_fk = user_accounts.uacc_id
LEFT JOIN user_profiles
ON user_profiles.upro_uacc_fk = user_accounts.uacc_id
WHERE
messages.msg_to_uacc_fk = ?
ORDER BY
msg_id
DESC
'MAX(1)' を SELECT に追加し、'LIMIT = 1' を DESC の後に追加しようとしましたが、もちろん、これは合計 1 つのメッセージを返しました。