Mysql从与另一个字段中的多个值匹配的行中查找不同的值

时间:2013-04-04 11:40:09

标签: mysql

在表格中,我有如下记录:

ID, ID1, ID2
1, 2, 3
2, 2, 4
3, 2, 5
4, 3, 3
4, 3, 4
4, 4, 3
4, 4, 4
4, 4, 5

我希望能够找到表中存在的所有ID1值,其中包含所有ID2值3,4和5

所以在这种情况下,我想要一些SQL只取出ID1 = 2和ID1 = 4,但不是ID1 = 3因为ID1 = 3只存在ID2 = 3而ID2 = 4 ...所以它丢失了ID2 = 5的行,因此我不希望它包含在我的结果集中。

有一种有效的方法吗?

TY!

1 个答案:

答案 0 :(得分:3)

您将需要使用以下选项来选择id2值为3,4或5的所有行,然后使用having子句应用group by以确保返回3 distinct { {1}}值:

id2

请参阅SQL Fiddle with Demo

此类查询称为relational division