gpt4 book ai didi

sql - 选择具有相同列的不同值

转载 作者:行者123 更新时间:2023-11-29 12:17:28 26 4
gpt4 key购买 nike

我已经阅读了许多 SQL 查询并尝试了这些查询但没有成功完成我想要的操作。我想要一个 SQL 查询,它接受参数随机成员 ID,如果他们有共同的对话则返回:

SELECT
conversation_id
FROM conversation_mapping
WHERE user_id IN ('1902616933097029', '1112126462227347', '26544849', '13587745')
GROUP BY conversation_id
HAVING COUNT(conversation_id) <> 1

这给了我这个结果:

38
39

结果一点都不好,因为在 ids '1902616933097029', '1112126462227347', '26544849', '13587745 中根本没有两个共同的对话。

我的 table

---------------------------------------
| user_id | conversation_id |
---------------------------------------
|'1112126462227347'| 38 |
|"1112126462227347"| 39 |
|"13587445" | 39 |
|"1902616933097029"| 38 |
|"1902616933097029"| 39 |
|"26544849" | 38 |
|"26544849" | 39 |
|"8541245" | 38 |
---------------------------------------

IN 语句的问题在于它找到了 id1 OR id2 OR id3,但没有选择具有相同 session ID 的 id1 AND id2 AND id3

最佳答案

如果我没理解错的话,您希望对话具有所有 共同的 ID。如果是这样,请使用 having 子句:

SELECT conversation_id
FROM conversation_mapping
WHERE user_id IN ('1902616933097029', '1112126462227347', '26544849', '13587745')
GROUP BY conversation_id
HAVING COUNT(DISTINCT user_id) = 4;

“4”是 IN 列表中的用户数。

关于sql - 选择具有相同列的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45164000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com