2013-07-16 73 views
1

我有一个表像这样:选择条件

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

你是什么意思'我应该只得到10结果'?你期望10行吗? – PowerUser

回答

2

您应该可以使用下面的查询得到的结果:

select patid 
from tablea 
where name in ('A', 'B') 
group by patid 
having count(distinct name) = 2; 

SQL Fiddle with Demo

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,这也会保留重复项。