SELECT特定组合

时间:2015-02-10 11:02:44

标签: mysql select group-by

我确定这很容易。它很难找到...

value_id   variation_id
1          1
2          1
1          2
3          2

现在我有一个组合(1,2)并且想要选择变体。 (编辑)我想举例如给(1,2)并得到1.给(1,3)并得到2. (/ EDIT)我该如何实现这一点?

我想到了GROUP BY value_id并以某种方式保留了每个value_id所触及的variation_id。

克里斯

2 个答案:

答案 0 :(得分:1)

如果要选择对(1,1)(1,2)(2,1)(2,2):

select * from mytable where value_id in (1,2) and variation_id in (1,2)

答案 1 :(得分:1)

如果相同的(value_id,variation_id)组合永远不会出现两次,那么:

select variation_id from t 
  where value_id in(1,2)
  group by variation_id
  having count(variation_id)=2;

否则

select variation_id from 
  (select distinct value_id, variation_id from t 
     where value_id in(1,2)) as tmp
  group by variation_id
  having count(variation_id)=2;