我试图设计一个MySQL查询来根据2个参数选择一个特定的记录 . 可以说我有3张 table . 用户,对话和UserConvo,其中UserConvo是一个引用表,用于链接用户和他们拥有的任何对话之间的多对多关系 . 把它想象成一个非常基本的网络聊天 .
现在,如果给定任意数量的UserIds(即[1,2,3]),我想找到一个完全涉及这些用户的对话 . 因此,对于UserIds 1,2和3的情况,我想看看是否存在仅包含用户1,2和3的对话 .
是否有纯粹的MySQL方法来做到这一点?我的第一个想法是只查询UserId 1,2和3所在的对话 . 然后,以某种方式检查每条记录以查看是否所有ConversationId都匹配,但我没有大量的MySQL经验,也不确定它的潜力 .
谢谢
1 回答
这样的事情应该有效 . 它使用
count
和case
- 这个想法是将每个对话的总计数与用户在(1,2,3)中的ID进行比较: