Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Доброго времени суток повелителям запросов.
Помогите пожалуйста советом, а лучше рабочим запросом.
Есть таблица обмена сообщениями между пользователями (дамп прикреплен в файле)
Пользователи обмениваются сообщениями, сообщения складываются в примерно такую таблицу
id - автоинкремент
from_id - от пользователя с айди
to_id - к пользователя с айди
message - текст сообщения (<от айди пользователя>-<к айди пользователя> / <айди записи в таблице сообщений> - для наглядности)
id from_id to_id message
26 2 10 2-10 /26
25 10 4 10-4 /25
24 10 2 10-2 /24
23 2 10 2-10 /23
22 10 2 10-2 /22
21 10 2 10-2 /21
19 2 10 2-10 /19
18 11 10 11-10 /18
17 11 10 11-10 /17
16 11 10 11-10 / 16
Логически нужно получить последнии записи открытых диалогов для текущего пользователя с другими пользователями с текстом последнего сообщения
Список открытых диалогов и последних сообщений в них между пользователями
Ожидаемый результат для пользователя id = 10 (from_id = 10 и to_id = 10)
26 2 10 2-10 /26
25 10 4 10-4 /25
18 11 10 11-10 /18
* Заметка:
- 10 не писал 11, но 11 писал 10, и у них открытый диалог
- в случае пар (пользователи обменивались сообщениями, нужно последнее)
26 2 10 2-10 /26
24 10 2 10-2 /24
возвращается запись с большим id
26 2 10 2-10 /26
- нужно что бы верно отдал последее сообщение
Ожидаемый результат для пользователя id = 11
18 11 10 11-10 /18
Ожидаемый результат для пользователя id = 2
26 2 10 2-10 /26
Спасибо, надеюсь на вашу помощь)
Отредактированно Андрей54321 (25.12.2014 14:22:30)
Неактивен
Неактивен
не получается избавится от дублирующей пары
отсюда
http://sqlinfo.ru/forum/viewtopic.php?id=7115
Отредактированно Андрей54321 (25.12.2014 16:38:10)
Неактивен
Если не хотите менять структуру, как в http://sqlinfo.ru/forum/viewtopic.php?id=7115
то
Неактивен
я не совсем понял как использовать ваш запрос?
он возвращает одно число 26, мне нужна таблица
если предположить что так
Неактивен
Неактивен
Вроде как результат то что нужно
Получился в итоге такой запрос
Неактивен
Страниц: 1