SELECT 具体组合

SELECT specific combination

我相信这很容易。只是很难找到...

value_id   variation_id
1          1
2          1
1          2
3          2

现在我有一个组合 (1,2) 并且想要 SELECT 变体。 (EDIT) 例如,我想给出 (1,2) 并得到 1。给出 (1,3) 并得到 2。(/EDIT) 我怎样才能做到这一点?

我想到了 GROUP BY value_id 并以某种方式保留了 variation_id,它被每个 value_id 击中。

克里斯

如果你想 select 对 (1,1) (1,2) (2,1) (2,2):

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

如果相同的(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;