Mysql查询,获取精确值
我有一个这样的表,我正在尝试获取聊天id,其中成员为excat match,例如,我想获取成员1,2的聊天id,但当这样做时,选择*member\u to\u chat,其中member\u id在1,2中,它返回结果,并从聊天编号3,这是错误的,因为在这个聊天我有3个人,我需要如果我给成员_id 1和2只获得聊天_id 1,有可能做到这一点与mysql,提前谢谢你!如果我的英语不好,我也很抱歉 会员聊天室Mysql查询,获取精确值,mysql,sql,Mysql,Sql,我有一个这样的表,我正在尝试获取聊天id,其中成员为excat match,例如,我想获取成员1,2的聊天id,但当这样做时,选择*member\u to\u chat,其中member\u id在1,2中,它返回结果,并从聊天编号3,这是错误的,因为在这个聊天我有3个人,我需要如果我给成员_id 1和2只获得聊天_id 1,有可能做到这一点与mysql,提前谢谢你!如果我的英语不好,我也很抱歉 会员聊天室 id | member_id | chat_id 1 1
id | member_id | chat_id
1 1 1
2 2 1
----------------------
3 1 2
4 3 2
----------------------
5 1 3
6 2 3
7 3 3
给定成员id 1,2-聊天id的结果必须为1,或者如果我通过了1,2,3,则必须返回聊天id 3,再次感谢您的建议
我喜欢使用分组和have来处理这些问题,因为这是一种非常灵活的方法来测试许多条件。如果您想要任何包含1和2但可能包含3的聊天:
select chat_id
from member_to_chat mtc
group by chat_id
having sum(member_id = 1) > 0 and
sum(member_id = 2) > 0;
要仅获取1和2-但不获取其他值,请执行以下操作:
select chat_id
from member_to_chat mtc
group by chat_id
having sum(member_id = 1) > 0 and
sum(member_id = 2) > 0 and
sum(member_id in (1, 2)) = 0;
谢谢你的快速回答,但是,我只需要在这张返程表和3号返程表上聊天,这个数字我不知道聊天室id我如何知道聊天室中有多少人它是否只与一个和存在的成员一起工作选择聊天室id从成员到成员,其中成员id在1,2中,或者必须是每个成员唯一的否和存在选择聊天室id从成员到成员,其中成员id在1,2中,它可能给出不正确的信息后果
select chat_id
from member_to_chat mtc
group by chat_id
having sum(member_id = 1) > 0 and
sum(member_id = 2) > 0 and
sum(member_id in (1, 2)) = 0;