开发者

MySQL question for conversation app

I have an app that manages conversations between users on a website. It does one to one conversations as well as having multiple people in a single conversation.

Here is the layout for the mysql tables

conversations

conversations_meta

The conversations_meta table links users to the conversations by logging user_id and conversation_id. It also holds meta info about the conversation specific to each user in the conversation.

What I am having trou开发者_StackOverflow中文版ble with is detecting if a conversation with the same people already exist. For example if a conversation between Eric Jason and bob exists but maybe it's old and the user forgot about it and then tries to create an addition conversation with the same users I would like to notify them of the conversation.

So the query should look in conversations_meta table and compare user_id and conversation_id to see if the same conversation exists already. Also I wouldn't want it to return conversations that include all the same users and additional users as well. The main reason I posted this question on here is to get the fastest query possible to accomplish this task since there will be thousands of conversations.


What about this:

SELECT conversations_meta.conversations_id FROM conversations_meta  
where (conversations_meta.user_id=1) or (conversations_meta.user_id=2)
group by conversations_id HAVING count(*) = 2 

NOTE: this is a case for only 2 people in the conversation. Easily expanded to the case of 3 or or more.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜