我在构造简单查询时遇到了问题,我觉得只有非常复杂的使用计数功能。
这是表:
ID | A | B
-----------
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 1 | 4
5 | 2 | 1
6 | 2 | 2
7 | 2 | 5
8 | 2 | 6
9 | 3 | 1
10 | 3 | 3
11 | 3 | 7
我需要从每个选定的A中存在的值B中获取。 因此,例如从该表中A = 1和2输出是B = 1和2
我的计划是使用函数IN获取选定A中的所有B。然后使用函数COUNT来计算每个B,如果它等于所选A的数量,那么它就是正确的。
我的第二个基于循环。我使用VBA,所以第一个查询将是找到所有B,其中A = 1,然后从上一步找到的所有B中找到,其中A = 2,依此类推。 然而,这将非常复杂。
您对此有何看法。
感谢您的回复。
示例:
A in {1,2} => Output: B = {1,2},
because B = 1 is with A = 1 for ID = 1
and B = 1 is with A = 2 for ID = 5
(similar way with B = 2)
B = 3 is with A = 1 for ID = 3, but it is not with B for any ID
A in {1, 2, 3} => Output: B = {1},
A in {1, 3} => Output: B = {1, 3},
A in {2, 3} => Output: B = {1}
答案 0 :(得分:0)
SELECT b.b
FROM (SELECT b FROM tablex WHERE A = val1) a
JOIN (SELECT b FROM tablex WHERE A = val2) b ON a.b=b.b
未测试。