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

May*_*day 5 mysql sql

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

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

---
A|1
A|2
A|3
A|4
B|1
B|3
---
Run Code Online (Sandbox Code Playgroud)

这就是我尝试过的

SELECT * FROM sample_table WHERE Col2 in (1,2,3) GROUP BY col1
Run Code Online (Sandbox Code Playgroud)

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

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

这是尝试它的小提琴

注意

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

非常感谢你

sag*_*agi 6

您可以使用以下HAVING()条款:

SELECT col1
WHERE Col2 in (1,2,3) 
GROUP BY col1
HAVING COUNT(col2) = 3
Run Code Online (Sandbox Code Playgroud)

这将仅显示具有3个值的结果,并且因为您仅过滤了1,2,3,如果有3个,那么它们就是3个.

注意:如果col2上的值不明显,则EG可以显示此数据:

A | 1
A | 1
A | 2
Run Code Online (Sandbox Code Playgroud)

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