Я написал SQL-запрос, который получает непрочитанные сообщения, но я думаю, что могу улучшить код (скорость и удобочитаемость). Первый выбор предназначен для функции COUNT, второй - для группировки сообщений в соответствии с разговорным_иде, а последний вложенный выбор - для выбора последних сообщений.
Пожалуйста, дайте мне предложения. Заранее спасибо.
SELECT COUNT(*) as unreaded FROM (
SELECT id
FROM (
SELECT id, conversation_id
FROM messages
WHERE to_id = ?
AND readed = 0
and NOT hide_from = ?
ORDER BY sended DESC
) AS temp_messages
GROUP BY conversation_id
) as temp_messages2