Было очень сложно создавать схемы таблиц и вставлять в них данные, которые соответствовали бы вашему сценарию.Поэтому в следующий раз, пожалуйста, предоставьте скриптовую ссылку на вашу схему / ситуацию.
Вот проблемы в вашем запросе:
- Вам не нужен подзапрос после
LEFT JOIN
ORDER BY
предложение всегда после GROUP BY
- Вы должны упомянуть все столбцы, которые вы
SELECT
вводите в предложении GROUP BY
.
Настроил свойзапрос немного:
SELECT *
FROM
(
SELECT
usr.*,
messages.message_text, messages.message_id, messages.updated_at
FROM
user as usr
LEFT JOIN message messages
--(
-- SELECT
-- message.*
-- FROM
-- message AS message
-- ORDER BY
-- message.updated_at
-- DESC
--) AS messages
ON
usr.user_id = messages.sender_id OR usr.user_id = messages.receiver_id
WHERE
usr.is_delete = 0 AND usr.is_active = 1
--ORDER BY
--messages.updated_at
--DESC
) AS result
GROUP BY
result.user_id,result.name,result.is_delete,result.is_active,result.message_text,result.message_id,updated_at
ORDER BY
result.updated_at
DESC
Надеюсь, это поможет:)