MySQL在不同的行上选择条件

时间:2017-12-01 20:37:37

标签: mysql

我有一个相当具体的查询,我无法找到答案(可能我不知道我必须谷歌的哪种关键字)。假设我有一个关系表,将2个表放在关系中。因此,所讨论的表是一组两个外国ID的元组。 作为一个简单的例子,我们假设该表包含两个元组{(1,3),(1,4)} 现在我要做的查询是这样的:

SELECT id1 FROM table WHERE id2 IN (3) AND id2 IN (4)

显然,没有这样的行可以满足这两个条件。这就是问题所在。我希望一行满足第一个条件而另一个满足第二个条件,而它们都应该在结果中具有相同的id1。所以我期望的结果是1。 一般来说,这些条件可能超过两个...... 我希望这很清楚。

1 个答案:

答案 0 :(得分:0)

您可以使用:

SELECT id1
FROM tab
WHERE id2 IN (3,4)               -- #1 here goes ids
GROUP BY id1
HAVING COUNT(DISTINCT id2) = 2;  -- here goes number of elements from #1