mysql – 如果另一列有多个值,如何选择按列分组的值

我试图从表中获取column1中的值,这些值在column2中有一些值.

例如,我想获得A,因为它有“1,2,3”. (预期产出的选择:A)

---
A|1
A|2
A|3
A|4
B|1
B|3
---

这就是我尝试过的

SELECT * FROM sample_table WHERE Col2 in (1,2,3) GROUP BY col1

我完全理解它不会起作用,因为我只是把第2列必须具有其中一个值的条件,然后我将它们按Col1分组,所以它需要(A,1),(A,2), (A,3),(B,1),(B,2) – >按Col1分组并给我(A)和(B)

我真的不知道如何强制它拥有所有3个值

这是fiddle尝试它

注意

请随时编辑帖子,以使其更容易理解,我已尽力了,但我知道它不是很好解释,特别是标题

非常感谢你

最佳答案
您可以使用HAVING()子句:

SELECT col1
WHERE Col2 in (1,2,3) 
GROUP BY col1
HAVING COUNT(col2) = 3

这将仅显示具有3个值的结果,并且因为您仅针对1,2,3进行过滤,如果有3个,则为3.

注意:如果col2上的值不明显,则E.G.这些数据可能会出现:

A | 1
A | 1
A | 2

然后在计数的括号内添加DISTINCT.

转载注明原文:mysql – 如果另一列有多个值,如何选择按列分组的值 - 代码日志