Php 如何选择只有两名参与者参与的对话?

Php 如何选择只有两名参与者参与的对话?,php,mysql,Php,Mysql,我需要检查参与者A和参与者B之间是否私下进行过任何对话。如果他们两人参与了小组聊天,我不想要那次谈话 那么,我该如何构造查询,它将在哪里检查count(participant_id)==2 我尝试了这个,但它给出了错误: select conversation_id from chat where participant_id == A AND participant_id == B AND COUNT(participant_id) == 2 表结构 尝试计算由聚合函数(如count)计算

我需要检查参与者A和参与者B之间是否私下进行过任何对话。如果他们两人参与了小组聊天,我不想要那次谈话

那么,我该如何构造查询,它将在哪里检查
count(participant_id)==2

我尝试了这个,但它给出了错误:

select conversation_id from chat where participant_id == A AND participant_id == B AND COUNT(participant_id) == 2
表结构

尝试计算由聚合函数(如count)计算的值时,需要HAVING子句。您还需要计算对话中涉及的唯一ID

顺便说一下,如果此查询未返回任何内容,则可能表示您没有任何符合配置文件要求的对话

尝试计算由聚合函数(如count)计算的值时,需要HAVING子句。您还需要计算对话中涉及的唯一ID


顺便说一句,如果此查询没有返回任何可能意味着您没有任何符合配置文件的对话。

请尝试-选择count(*)c,
conversation\u id
FROM
chat
groupby
participant\u id
HAVING c=2@RohanKhude,它不会返回任何内容显示您的表结构更新您的问题添加相关表架构一个适当的数据样本和预期结果这里是
participant\u id
Try-SELECT count(*)c,
conversation\u id
FROM
chat
groupby
participant\u id
HAVING c=2@RohanKhude,它不返回任何内容显示您的表结构更新您的问题添加相关的表架构一个适当的数据样本和预期结果这里是
participant\u id
我尝试了您的查询,但它返回的群组聊天也包含这两个用户。我只想私下聊天。请看我的桌子在哪张桌子上面?它在哪里?已更改的查询,请使用MIN和MAX计算而不是where子句进行尝试。请注意,虽然很好,但此解决方案适用于所述的特殊情况(仅2名参与者),因此不可缩放。我尝试了您的查询,但它返回的群聊也包含这两个用户。我只想私下聊天。请看我的桌子在哪张桌子上面?它在哪里?已更改的查询,请尝试使用最小和最大计算,而不是where子句。请注意,虽然很好,但此解决方案适用于所述的特殊情况(仅2个参与者),因此不可缩放。
SELECT
      conversation_id
FROM chat
GROUP BY
      conversation_id
HAVING COUNT(DISTINCT participant_id) = 2
AND MAX(participant_id) IN (A,B)
AND MIN(participant_id) IN (A,B)