我有以下表结构:
ID A B
-- --- -----
1 a a1
2 b b1
3 a a2
4 c a1
5 b b2
我希望从A列中获取与B列列表中所有值相关联的值。
例如:
我有一个A列的列表:
{a1,a2}
输出结果应该是a
,
c
不会在结果中返回,因为它只与a1
相关,而与a2
无关。
有没有一种通过SQL查询来获得这个结果的方法?
编辑
在这种特殊情况下,应该可以使用以下方法:
ID A B
-- --- -----
1 a a1
2 b b1
3 a a2
4 c a1
5 b b2
6 c a3
7 c a2
现在,c
也与a2
和a3
相关联,但它不应该被返回,因为作为结果的一部分,c
必须仅与a1
和a2
相关联。
但是,如果我按如下查询:
SELECT A
FROM table_name
WHERE B IN ( 'a1', 'a2' ) -- The items in the list
GROUP BY A
HAVING COUNT( DISTINCT b ) = 2;
它也返回
c
。