无法找到一个简单的mysql查询

无法找到一个简单的mysql查询,mysql,sql,logic,Mysql,Sql,Logic,我现在觉得自己非常非常愚蠢,因为我有一个问题,似乎无法解决它 非常简单的MySQL表,有两列: ID1 | ID2 1 | 1 1 | 2 2 | 1 不知道如何很好地解释这些条件:我想从列ID1中选择值1,因为它与ID2中的值1和2有连接 这在某种程度上与中的相反 如果我 从X中选择ID1,其中ID2位于(1,2)我同时接收1和2,因为这是一个重聚。我想要一个交叉点,类似于从X中选择ID1,其中ID2在1和2中 我相当肯定这与分组有关

我现在觉得自己非常非常愚蠢,因为我有一个问题,似乎无法解决它

非常简单的MySQL表,有两列:

ID1   |    ID2
 1    |     1
 1    |     2
 2    |     1
不知道如何很好地解释这些条件:我想从列ID1中选择值1,因为它与ID2中的值1和2有连接

这在某种程度上与中的相反

如果我
从X中选择ID1,其中ID2位于(1,2)
我同时接收1和2,因为这是一个重聚。我想要一个交叉点,类似于
从X中选择ID1,其中ID2在1和2中

我相当肯定这与分组有关

1解决办法是

SELECT * FROM
(SELECT ID1, GROUP_COCAT(ID2) y
FROM X
GROUP BY ID1)t
WHERE t.y = '1,2'
但这不好,因为我不知道顺序(1,2或2,1),我可以有更多的值

希望这足够清楚,我很累

SELECT t.*
FROM TEMP t
WHERE t.id2 IN (1, 2)
GROUP BY t.id1 HAVING COUNT(*) = 2


ID2只包含1和2?这只是一个小例子,它将包含更多的值。例如,它可以包含1,2,3,4,如果我搜索1,2,我希望得到一个好的结果。你能让这个问题变得更加模糊吗?也就是说,我怀疑你在寻找以下信息。。。从a中选择一个*,其中a.y在(1,2)组中,由a.x进行计数(*)=2@草莓不,不需要修改,我的错。是的,这就是答案,谢谢!是的,我知道了,就像草莓和你说的,不知道我怎么从来没有说过。。。我将在10分钟内接受答案
SELECT t.*
FROM TEMP t
WHERE t.id2 IN (1, 2, 3, 4)
GROUP BY t.id1 HAVING COUNT(*) = 4