2013-07-16 92 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,這也會保留重複項。