我正在尝试查找TableA中由TableB中的一组记录提及的所有ID,如果在表C中定义,则设置。我到目前为止,一组INNER JOIN为我提供了结果如下:
TableA.ID | TableB.Code
-----------------------
1 | A
1 | B
2 | A
3 | B
我想只选择ID,在这种情况下,A和B都有一个条目,但值A和B基于另一个Query。 我认为这应该可以使用GROUP BY TableA.ID和HAVING = ALL(表C上的子查询)。 但那没有回报任何价值。
答案 0 :(得分:0)
由于您没有发布原始查询,我将假设它在CTE中。假设这样,你想要的查询是这样的:
SELECT ID
FROM cte
WHERE Code IN ('A', 'B')
GROUP BY ID
HAVING COUNT(DISTINCT Code) = 2;
答案 1 :(得分:0)
这是一个非常糟糕的问题,但您可能需要将不同的计数与表C进行比较
SELECT a.ID
FROM TableA a
GROUP BY a.ID
HAVING COUNT(DISTINCT a.Code) = (SELECT COUNT(*) FROM TableC)
我们猜不过。