我需要检查参与者 A 和参与者 B 之间是否私下进行过任何对话。如果他们两个参与群组聊天,我不想该对话。
那么,我如何构建查询来检查 count(participant_id) == 2
是否存在?
我尝试了这个,但它给出了错误:
select conversation_id from chat where participant_id == A AND participant_id == B AND COUNT(participant_id) == 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)
尝试计算由聚合函数(例如 count)计算的值时,需要 HAVING 子句。您还需要计算对话中涉及的唯一 ID。
顺便说一句,如果此查询未返回任何内容,则可能意味着您没有任何符合配置文件的对话。
关于php - 如何选择只有两个参与者参与的对话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40816424/