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;
我相信这很容易。只是很难找到...
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;