2014-03-02 47 views
2

醫生SQL從內選擇加入其中計數大於

 
doctorid (PK) 
doctorname 

患者

 
patientid (PK) 
patientname 
doctorid 

我有以下查詢來獲取的患者,他/她諮詢的數量醫生的詳細信息。假設病人只有一位醫生進行諮詢。

select d.doctorid,d.doctorname,count(p.patientid) 
from doctor d 
inner join patient p 
on d.doctorid = p.doctorid 
group by p.doctorid 

現在我需要得到相同的信息,但只有醫生誰有超過1名患者。請給我一個查詢。

+0

您使用的是SQL Server還是MySQL?請適當標記問題。 –

回答

6

使用HAVING clause

SELECT d.doctorid, 
     d.doctorname, 
     COUNT(p.patientid) AS patients 
    FROM doctor d 
     INNER JOIN patient p 
        ON d.doctorid = p.doctorid 
GROUP BY 
     d.doctorid, 
     d.doctorname 
HAVING patients > 1 

我用別名(patients),而不是COUNT(p.patientid),因爲HAVING子句允許。但你可以堅持COUNT(p.patientid)以及
此外,我建議你使用GROUP BY條款中的所有非聚合列。
而且,如果您迴避doctorname,那麼您可能不必檢索doctorid

+0

非常感謝亞歷山大!這一個工程.. –