无法找到一个简单的mysql查询
我现在觉得自己非常非常愚蠢,因为我有一个问题,似乎无法解决它 非常简单的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中 我相当肯定这与分组有关
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