Количество непрочитанных сообщений

Если дана MySQL таблица сообщений в виде: id, user1, user2, new, text; при первом рассмотрении возникает некоторая сложность с получением списка всего диалога между двумя пользователями и одновременно подсчетом количества непрочитаных сообщений для одного из участников в одном запросе, но проблема решается очень легко, как оказалось.

new по умолчанию равно 1, что символизирует о его непрочитанности получателем (user2). Таким образом — получаем запрос:

SELECT *, IF(`user1` != {$user}, `user1`, `user2`) AS user_notme, SUM(`new`) AS count_new FROM tMsg WHERE (`user1` = {$user} OR `user2` = {$user}) GROUP BY user_notme

Что даст нам количество непрочитанных сообщений как для первого, так и для второго участников диалога в сумме. Что бы вычленить слагаемое, предназначенное для вывода количества только лишь для одного из собеседников модифицируем запрос:

SELECT *, IF(`user1` != {$user}, `user1`, `user2`) AS user_notme, SUM(`new` *  IF(`user2` = {$user}, 1, 0)) AS count_new FROM tMsg WHERE (`user1` = {$user} OR `user2` = {$user}) GROUP BY user_notme

Пожалуйста, изложите свои мысли