Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток!
Есть задача: в личном кабинете пользователь может зайти на страницу СООБЩЕНИЯ и должен увидеть сообщения в виде слудюющей таблицы:
Контакт Сообщений Непрочитанные Последнее Последнее сообщение
_________________________________________________________________________________________________
Алексей 6 есть 11.12.2009 Вам пишет Алексей смоленский. Рад соо...
Андрей 1 нет 10.12.2008 Уважаемый Андрей, не могли бы вы быть так ...
Катерина 8 есть 12.08.2009 Я самая самая красивая и умная на всем б...
Контакт - это имя контакта, который написал сообщение мне или которому написал сообщение я. В этом и возникла сложность, если бы сообщения только приходили ко мне, то можно было скруппировать сообщения по адресату, а здесь нужно выводить имя контакта. с которым я контактирую. Например второе сообщение в примере я написал Андрею, но выводится не моё имя, а Андрея.
Таблица сообщений:
Неактивен
Неактивен
Спасибо большое. С вашей помощью написал аот такой запрос:
Неактивен
Да, это я упустил из виду. Если мы выбираем поле, которое не имеет групповой функции и не входит в GROUP BY, то сервер выбирает произвольные записи. Стандарт SQL вообще запрещает такие запросы.
В данном случае придется использовать объединение.
Неактивен
Передо мной стоит абсолютно такая же стоит задача, как и перед топик-стартером. Но увы, проверив на практике, результат последнего варианта запроса не оправдал надежд.
Смысл в том, что необходимо получить из таблицы (`message`) где хранятся сообщения всех пользователей, последние сообщения из разговора (либо отправленное мной, либо собеседником – зависит от того чьё было последним). В нашем же случае мы получаем последнее сообщения, но написанное только лишь собеседником.
Неактивен
Если вы внимательно посмотрите запросы в постах #2 и #3, то увидите, что запросы там состаят из 2ух частей (через union), как раз для того, чтобы получать сообщения либо отправленные, либо полученные.
А последнее мое сообщение - это иллюстрация как нужно доработать запрос на примере одной из его частей.
Неактивен
Угу, в том то и дело, что не выходит.
Отредактированно 4e1ovek (21.12.2010 21:24:47)
Неактивен
Кажется то что нужно:
Отредактированно 4e1ovek (21.12.2010 20:22:33)
Неактивен