假设我有一张这样的表
A B C
-----
1 a 12
2 a 23
3 b 43
4 c 25
5 c 44
6 d 34
如何只选择B在另一行中存在的行?
结果将是:
A B C
-----
1 a 12
2 a 23
4 c 25
5 c 44
答案 0 :(得分:3)
我不确定你的期望是什么,但我不知道B& d
我们可以像这样实现
Select T.A,T.B,T.C from Table T
INNER JOIN (
SELECT B FROM Table
groUP by b
having count(B) > 1 )TT
ON T.B = TT.B
答案 1 :(得分:1)
只需使用exists
:
select t.*
from t
where exists (select 1
from t t2
where t2.b = t.b and t2.a <> t.a
);
索引为t(b, a)
,这可能是最快的方法。