gpt4 book ai didi

mysql - SQl 选择出现在一组或多组中的数据

转载 作者:太空宇宙 更新时间:2023-11-03 12:04:06 25 4
gpt4 key购买 nike

我有一个多对多的关系

code1 code2
1 10 <-- Desired (1 appears more than once)
1 11 <-- Desired (1 appears more than once)
1 17 <-- Desired (1 appears more than once)
2 10
3 11 <-- Desired (3 appears more than once)
3 17 <-- Desired (3 appears more than once)
4 10
5 10

...我想编写一个单个 SQL 查询,其结果如下:

code1 
1 <-- This result appears because 1 appears more than once above
3 <-- This result appears because 3 appears more than once above

(即,返回 code1 中任何数据与 11 和 17 相关联的所有行的单个 SQL 查询)...

我可以写什么SQL?可能吗?

最佳答案

您可以使用 GROUP BY 和 HAVING 来过滤掉这些。试试这个:

SELECT code1
FROM myTable
GROUP BY code1
HAVING COUNT(*) > 1;

这将提取所有多次出现的“code1”值,方法是对它们进行分组,并查看哪些组有多于一行。

编辑

如果你想在其他列上包含条件,你可以先编写一个只获取你想要的行的查询(如你在评论中所说,其中 code2 等于 11 或 17),如下所示:

SELECT code1, code2
FROM myTable
WHERE code2 = 11 OR code2 = 17;

然后,您可以对该查询应用上述过滤器。您的结果集中不需要 code2:

SELECT code1
FROM myTable
WHERE code2 = 11 OR code2 = 17
GROUP BY code1
HAVING COUNT(*) > 1;

我在 SQL Fiddle 中对此进行了测试它奏效了。

关于mysql - SQl 选择出现在一组或多组中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27450741/

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