Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Из диалога получить ид получателя и отправителя  [new]
D_A_S1
Member

Откуда: Волгоград
Сообщений: 631
Добрый день!
У нас есть таблица messages, в котором хранятся сообщения между пользователями:
senderUserId - ид отправителя
receiverUserId - ид получателя
message - текст сообщения

Мне нужно получить одну запись по каждому диалогу между получателем и отправителем.
Запрос
SELECT "senderUserId", "receiverUserId"
FROM messages
GROUP BY "senderUserId", "receiverUserId"

выводит вот такие данные, например,
senderUserId - receiverUserId
20 - 5
13 - 4
5 - 20
5 - 20
20 - 5

А мне нужно вернуть только
20 - 5
13 - 4 (т.е. другие варианты 5-20,20-5) мне нужно выводить
14 июн 17, 11:16    [20562894]     Ответить | Цитировать Сообщить модератору
 Re: Из диалога получить ид получателя и отправителя  [new]
D_A_S1
Member

Откуда: Волгоград
Сообщений: 631
опечатка:
А мне нужно вернуть только
20 - 5
13 - 4 (т.е. другие варианты 5-20,20-5) мне НЕ нужно выводить
14 июн 17, 11:19    [20562909]     Ответить | Цитировать Сообщить модератору
 Re: Из диалога получить ид получателя и отправителя  [new]
LeXa NalBat
Member

Откуда: Москва
Сообщений: 2886
SELECT
  LEAST("senderUserId", "receiverUserId"),
  GREATEST("senderUserId", "receiverUserId")
FROM messages
GROUP BY 1, 2

https://www.postgresql.org/docs/9.6/static/functions-conditional.html
14 июн 17, 13:32    [20563542]     Ответить | Цитировать Сообщить модератору
 Re: Из диалога получить ид получателя и отправителя  [new]
D_A_S1
Member

Откуда: Волгоград
Сообщений: 631
LeXa NalBat,
спасибо!
14 июн 17, 20:03    [20564955]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить