在讨论中至少有两个活跃参与者进行所有讨论?

时间:2015-07-27 09:08:04

标签: sql postgresql

我有一个简单的一对一聊天程序,我想找出两个参与者至少发送过一条消息的讨论。我将如何形成这样的查询?

表格如下(简化):

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 个答案:

答案 0 :(得分:1)

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

应该这样做。

如果您的讨论表中包含更多列,例如辩论的主题,你可以加入。