获取“存在”两个特定行的字段

时间:2014-07-26 13:36:07

标签: mysql

假设我有以下数据结构:

field1         | field2
---------------+--------
something      | 2
something      | 1
anotherone     | 2
anotheranothe  | 1

我希望只要存在{#1}}" x"就会将所有field1分组。和" y"。

如果" x"等于1和" y"等于2,那么查询的结果应该是"",因为另一个只有" 2"和另一个只有" 1"。 某事是唯一一个有2和1的人。

有关如何做到这一点的任何想法?我试过field2但其他人失败了

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找这样的查询:

select field1
from table t
group by field1
having sum(field2 = 1) > 0 and
      sum(field2 = 2) > 0;

这是“set-within-sets”子查询的示例。这些通常使用聚合和having子句最灵活地解决。 having子句中的每个条件都会检查其中一个值。 > 0确保它在那里。