MySQL -如何得到所有的结果有所有的列值?

vyu0f0g1  于 2022-11-21  发布在  Mysql
关注(0)|答案(2)|浏览(108)

我想获取所有的id 1,其中id 2等于2和3

样表-

| id1 | id2 |
| --- | --- |
|  1  |  2  |
|  1  |  3  |
|  1  |  4  |
|  2  |  2  |
|  2  |  4  |

在这种情况下,预期输出如下所述,因为2仅Map到2而不Map到3,因此仅1个结果进入输出。

预期输出-

| id1 |
| --- |
|  1  |

但是,当我运行以下查询时,它在result中也给出id 1 = 2和id 1 = 1

Select id1 from table where id2 in (2,3) group by id1;

获取此输出的正确查询是什么?

zbwhf8kr

zbwhf8kr1#

您可以使用HAVING来过滤数据

Select id1,count(distinct id2) from table 
 where id2 in (2,3) 
 group by id1 having count(distinct id2) = 2
2ul0zpep

2ul0zpep2#

使用聚合,我们可以尝试:

SELECT id1
FROM yourTable
WHERE id2 IN (2, 3)
GROUP BY id1
HAVING COUNT(DISTINCT id2) = 2;

相关问题