gpt4 book ai didi

mysql - 检查一列是否包含另一列的所有值 - Mysql

转载 作者:可可西里 更新时间:2023-11-01 06:37:32 24 4
gpt4 key购买 nike

假设我有一个包含人员 ID 和其他元素 ID 的表 T1,如下所示

Table: T1
personID | stuffID
1 | 1
1 | 2
1 | 3
1 | 4
2 | 1
2 | 4
3 | 1
3 | 2

另一个表 T2 只有一列 stuffIDs

Table: T2
stuffID
1
2
3

我将通过 SELECT 得到的结果是一个 peopleID 表,这些 peopleID 与 T2 的所有 stuffID 相关联。

按照示例,结果将只有 id 1(personID 3 不会出现,即使它关联的所有 stuffID 都包含在 T2.stuffID 中)。

最佳答案

如果我没理解错的话,您想从 T1 中检索所有在 T2 中找到的所有相关联的 stuffID 的 personID。

您可以将其分解如下:首先,找到与嵌套查询匹配的所有 T1 条目

SELECT personID 
FROM T1 WHERE stuffID IN (SELECT stuffID FROM t2)

现在您需要检查此集合中的哪些条目包含您想要的所有 stuffID

GROUP BY personID
HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM t2)

把它们放在一起:

SELECT personID 
FROM T1 WHERE stuffID IN (SELECT stuffID FROM t2)
GROUP BY personID
HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM t2)

HTH.

关于mysql - 检查一列是否包含另一列的所有值 - Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28939367/

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