2015-07-27 1 views
0

У меня есть простая чат-программа один на один, и я хотел бы узнать обсуждения, в которых оба участника отправили хотя бы одно сообщение. Как мне сформировать такой запрос?Получите все обсуждения, в которых в дискуссии участвуют как минимум два активных участника?

таблицы, как это (упрощенный):

Table USER 
- id 
- username 

Table DISCUSSION 
- id 

Table MESSAGE 
- id 
- user_id (the user who sent the message) 
- discussion_id (the discussion this message belongs to) 

Так, по существу, мне нужно проверить, что есть по крайней мере две MESSAGE строки, которые имеют одинаковые discussion_id но different user_id «с.

ответ

1
SELECT discussion_id FROM message 
    GROUP BY discussion_id 
    HAVING count(user_id) > 1 

должен это сделать.

Если в таблице обсуждений имеется больше столбцов, например. вы можете присоединиться к этому вопросу.

+0

Большое спасибо! Такое элегантное решение. Я думал, что это будет беспорядок подзапросов и тому подобное. :) – manabreak

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