当前位置: 首页 > 知识库问答 >
问题:

匹配两组数字以求相等

乌翔
2023-03-14

我有两张桌子:

聊天室:id(INT)creator_user_id(INT)

聊天参与者:participant_user_id(INT)chat_room_id(int-fr)

我想:

找到一个聊天室,其中用户1是创建者,用户2&3是唯一的参与者。

到目前为止我得到了什么:

SELECT rcc.*,

COUNT(*) as participant_count,

GROUP_CONCAT(rcp.user_id) as participants

FROM
   `chat_rooms` cr

LEFT JOIN chat_participants cp on cp.chat_room_id = cr.id

WHERE rcc.user_id = 1

GROUP BY rcc.id

HAVING participant_count = 2 AND participants = '2,3'  <--- this doesn't look nice

问题:

我有两组数字,我想匹配相等。Set2,3是我的输入,我希望将它与group_concat(rcp.user_id)as participents匹配,以求相等,而不管它们在各自的集合中的顺序如何。

我在上面做的是字符串比较,这显然不是正确的方法。

谢谢大家。

共有1个答案

寿伟
2023-03-14

我把它写成:

sql prettyprint-override">SELECT cr.id
FROM chat_rooms cr
INNER JOIN chat_participants cp
    ON cp.chat_room_id = cr.id
WHERE cr.creator_user_id = 1
GROUP BY cr.id
HAVING
    COUNT(DISTINCT participant_user_id) = 2 AND
    SUM(participant_user_id NOT IN (2, 3)) = 0;
 类似资料:
  • 问题内容: 我有两个数组 我需要将此合并到以编程方式匹配用户ID的单个数组 最终的数组应该像 有没有一种更清洁的方法来执行此操作,我的应用程序中有下划线库,但是我找不到一种干净的方法来实现此目的 问题答案: 使用下划线的解决方案: _.map 跨成员 使用 _.findWhere 查找匹配的成员信息 **** _。省略 匹配成员信息中的ID密钥 _。 使用会员信息 扩展 会员

  • 问题内容: 情况如下: 我有一个已作为字符串抓取的网页。 我在MSSQL数据库中有几个字段。例如,汽车模型具有ID和名称,例如Mustang或Civic。它预装了大多数型号的汽车。 我想在我的模型表中找到任何匹配的行。因此,如果我的模型表中有Civic,Mustang和E350,我想在我抓取的页面上找到这三个中任何一个的出现情况。 在C#中执行此操作的有效方法是什么。我正在使用LINQ to SQ

  • 反正有这样做的吗?

  • 给定两个数组,是否有一种numpy非循环方法来检查数组之间的每个第i个索引是否匹配,即如果a[i]==b[i],是否检查每个i? 我想这已经被问过了,但是我找不到我要找的东西,如果是的话,我很抱歉。

  • 问题内容: 我知道我可以这样做: 然后只需编写语句中所需的代码。 还有其他方法可以检查它们是否相等? 问题答案: 怎么了 if(!Arrays.equals(array1,array2)) 与相同,即是同一数组。这不是大多数人期望的。 比较数组的内容。

  • 问题内容: 我正在使用以下代码来解析yaml并应将输出作为对象,并且该函数应更改数据结构并根据以下结构提供输出 这是我尝试过的方法,但是我不确定如何从yaml中获取的值 替换 函数运行器中 的硬代码值 与来自 这就是我尝试过的所有想法,该怎么做? 问题答案: 将runners对象的名称分配给名称的struct 字段,并使用与名称匹配的函数命令将命令列表附加到type字段: 操场上的工作代码