SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.02.2015 10:27:17

Badalbas
Участник
Зарегистрирован: 26.02.2015
Сообщений: 2

Помогите с запросом на выборку последних сообщений

Здравствуйте!
Сейчас пишу диплом и столкнулся с одним моментом. Я пишу, грубо говоря, социальную сеть и передо мной стала задача написать страничку диалогов (как вконтакте). На странице должен быть список людей, с которыми я переписывался и для каждого - последнее сообщение (не важно, мое к нему или от него ко мне). Помогите пожалуйста с запросом...

Мои таблицы:

users: id, name, surname
massages: id, sender (id юзера), recipient(id юзера), text, date.

Сам старался, но ничего толкового не родил. Вот то, что есть.


SELECT
          users.id AS id,
          users.name AS name,
          users.surname AS surname,
          massages.textAS text,
          massages.date AS date
FROM users, massages
WHERE (massages.sender=:thisUser AND massages.recipient=users.id)
    OR (massages.sender=users.id AND massages.recipient=:thisUser)
GROUP BY ...?
 


Помогите кто чем может) Заранее благодарю)

Отредактированно Badalbas (26.02.2015 10:27:35)

Неактивен

 

#2 26.02.2015 10:31:51

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2420

Re: Помогите с запросом на выборку последних сообщений

Попробуйте
SELECT
  u.id,u.name,u.surname,m.text,m.date AS date
FROM
  users u, massages m
WHERE
  (m.sender=:thisUser AND m.recipient=u.id) OR (m.sender=u.id AND m.recipient=:thisUser)
ORDER BY m.date
  LIMIT 1;


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 26.02.2015 11:55:28

Badalbas
Участник
Зарегистрирован: 26.02.2015
Сообщений: 2

Re: Помогите с запросом на выборку последних сообщений

Это не совсем то, что мне нужно, но спасибо.

Я, видимо, не так выразился. Мне нужна выборка ПОСЛЕДНИХ сообщений из каждого диалога. То есть, если за все время существования моего аккаунта, я общался только с условными Васей и Петей, то в выборке должна быть информация про Васю и последнее сообщение с ним, а так же про Петю и последнее с ним сообщение. Думаю, так понятнее...

Должно вернуть что-то вроде такого:

users.id | users.name | users.surname | massages.text | massages.date
3 | Василий | Пупкин | Последнее сообщение от Васи | Дата последнего сообщения
17 | Петр | Шибкин | Последнее сообщение от Пети| Дата последнего сообщения

И так по каждому  диалогу - вернуть информацию по сообщению и по человеку, с которым я переписівался

Отредактированно Badalbas (26.02.2015 15:19:06)

Неактивен

 

#4 26.02.2015 12:08:57

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Помогите с запросом на выборку последних сообщений

Посмотрите http://sqlinfo.ru/forum/viewtopic.php?id=7311
там решена такая задача.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson