我有一张像这样的表:
TableA
----------------------------
ID - Name - PatID
1 A 10
2 B 10
3 A 11
4 A 12
5 B 13
我想选择具有PatID
的所有Name=A and Name = B
。
所以我应该得到10
作为结果。
应该查询什么?
答案 0 :(得分:2)
您应该能够使用以下查询来获得结果:
select patid
from tablea
where name in ('A', 'B')
group by patid
having count(distinct name) = 2;
答案 1 :(得分:0)
如果您需要来自A组和B组的信息,您也可以这样做:
SELECT AGroup.ID AS AId, BGroup.ID AS BId
FROM TableA AGroup
JOIN TableB BGroup
ON AGroup.Name = 'A'
AND BGroup.Name = 'B'
AND AGroup.PatID = BGroup.PatID
如果您有多个条目,这也会保留重复项,例如Name = A和PatID = 10。