2015-05-11 3 views
0

Я создаю чат с тремя таблицами.Создайте запрос, чтобы получить информацию от конкретного пользователя

разговор, Conversation_reply и пользовательские

Диалог Столбцы

  1. ID
  2. user_one
  3. user_two

Conversation_reply Колонны

  1. ID
  2. user_id
  3. conversation.id
  4. ответные

Колонны пользователя

  1. ID
  2. usernam e

Я хотел бы создать список с именем пользователей, которые читают с определенным пользователем.

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

У меня возникли проблемы с созданием этого запроса, потому что user_one и user_two являются относительными, идентификатор из ресивера иногда может быть вставлен как user_one или user_two. Это зависит от того, какой пользователь начинает сначала общаться в чате.

Как я могу построить запрос для этого?

Спасибо.

ответ

1

В зависимости от вашей РСУБД вы можете проверить синтаксис IF/ELSE, CASE/WHEN. Исходя из этого вы пишете заявление:

SELECT if (user_one=711) user_two ELSE user_one 
FROM conversation 
where user_one=711 OR user_two=711 

Это псевдокод, но идея должна быть ясна.

Смежные вопросы