gpt4 book ai didi

SQL:选择包含完全给定成员的集合

转载 作者:行者123 更新时间:2023-12-04 05:32:33 26 4
gpt4 key购买 nike

我确定对此有一个恰当的词我不会记得,但是这个问题很容易描述:
我有一个表groupmembers,这是组和成员之间的简单关系:

id | groupid | memberid
1 | g1 | m1
2 | g1 | m2
3 | g2 | m1
4 | g2 | m2
5 | g2 | m3

上面描述了两组,一组带有m1和m2,一组带有m1,m2和m3。
如果我要选择成员为m1,m2但没有其他成员的groupid,该怎么办?我尝试过的方法也会返回g2,因为m1和m2是它们的子集。

更新:哇,一些不错的答案!首先让我澄清一下我的问题-我希望能够选择与给定成员m1和m2完全匹配的组。因此,如果组中包含的成员还多于m1和m2,则该组不匹配;如果该组包含的成员m1和m2少于,则该组不匹配。

最佳答案

从你的短语

I want to select groupids which has members m1,m2 but no other members



尝试这一操作,其背后的想法是对符合条件和 count子句的记录的总实例进行 where,并且该实例等于每组记录的总数。
SELECT groupid
FROM table1 a
WHERE memberid IN ('m1','m2')
GROUP BY groupid
HAVING COUNT(*) =
(
SELECT COUNT(*)
FROM table1 b
WHERE b.groupid = a.groupid
GROUP BY b.groupID
)

SQLFiddle Demo

关于SQL:选择包含完全给定成员的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12776178/

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