最初由 fangjinde 发布
[B]select distinct id from t t1
where exists
(select '1' from t t2 where t2.id=t1.id and t2.value in (20,30)); [/B]
這樣得出來得結果肯定是:
id
----
1
2
3
4
改了下:
select q.id from
(select id, count(id) v from t t2
where t2.value in (20,30)
group by id
) q
where q.v=2
经过实际操作,我发现四楼的方法还是有点小瑕疵。
因为在现实情况下,value的值有可能重复的,所以SQL语句应该改成:
[php]
SELECT q.id
FROM (SELECT id, COUNT(distinct value) v FROM t t2 WHERE t2.VALUE IN (20, 30) GROUP BY id) q
WHERE q.v = 2;
[/php]
最初由 ShingU 发布
[B]经过实际操作,我发现四楼的方法还是有点小瑕疵。
因为在现实情况下,value的值有可能重复的,所以SQL语句应该改成:
[php]
SELECT q.id
FROM (SELECT id, COUNT(distinct value) v FROM t t2 WHERE t2.VALUE IN (20, 30) GROUP BY id) q
WHERE q.v = 2;
[/php] [/B]