我有以下表格。复杂的MySQL对话组查询?
conversations
| id |
------
1
和
conversationMembers
| id | conversationId | userId | email
---------------------------------------
1 1 2 null
2 1 null [email protected]
3 1 7 null
基本上,我试图构建一个MySQL查询,通过conversationMembers的精确匹配返回从对话表中的一行。
因此,这里有一些预期回报的例子。
假设我们想要一个会话id用于以下确切成员之间的会话:userId 2,userId 7,email [email protected] - 这会在conversationMembers表中看到具有相同对话ID的行以及完全匹配我们正在搜索的那个对话ID的所有成员。它将返回ID为1的对话行。
这是另一个示例。我们希望在用户标识2和用户标识7之间进行对话的对话标识。这将看到用户标识2和用户标识7之间没有对话,所以它不会返回任何内容。
最后一个例子。假设我们想要userId 7和userId 9,这也会看到这两个用户标识之间没有独占对话,并且不会返回任何内容。
要做到这一点,最好的方法是什么?我玩过子查询,但是我所提出的一切似乎都无法处理完全匹配的情况 - 例如,我在选择对话时遇到了问题 - 仅在userId 2和7上(它不会返回任何内容)并且正在接受对话1,尽管我没有指定我想与[email protected]电子邮件进行对话。如果我搜索了所有会员的完全匹配的conversationId,我应该只会收到对话1返回。
似乎完美地工作!谢谢! –