и данные для all, all_teachers, all_students считаются так, что id этих не прочитанных сообщений больше чем chat_message_read.last_read_message_id каждого соответствующего общего чата, а не индивидуального. А надо чтобы было так: для чата ind_4_9 количество равно: его собственные сообщения + общие, но чтобы id и тех и других были больше чем значение chat_message_read.last_read_message_id в соответствующей строке этого индивидуального чата ind_4_9 (либо 0 если строки не существует).
Лентюй, эта логика за пределами этих 3х таблиц. Но в данном случае можно считать, что массив virtual_id внутри запроса состоит из тех чатов которые нужны. И в нём нет чатов к которым у пользователя нет доступа.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
(для "общих" сообщений virtual_id именно такие (совпадают с type)). Т.е. на выходе таблица вида:
и данные для all, all_teachers, all_students считаются так, что id этих не прочитанных сообщений больше чем chat_message_read.last_read_message_id каждого соответствующего общего чата, а не индивидуального. А надо чтобы было так: для чата ind_4_9 количество равно: его собственные сообщения + общие, но чтобы id и тех и других были больше чем значение chat_message_read.last_read_message_id в соответствующей строке этого индивидуального чата ind_4_9 (либо 0 если строки не существует).