2015-04-28 101 views
0

表1SQL連接查詢三個用表

HospitalID HospitalName      Address 
    1  Andalusia Regional Hospital  Andaluisa 
    2  Baypointe Hospital    New York 
    3  Axa Hospital      California 

表2

ID HospitalID ClinicName 
1  1   Women Health 
2  1   Man Health 
3  1   Travel Health 
4  1   Cardiology 
5  2   internal medicine 
6  3   Cardiology 

表3

Id HospitalID TargetHospitalID DistanceKm 
1  1    2   45 
2  1    3   95 
3  2    3   15 

我對HospitalID = 1醫院。(心臟病)

我需要從這裏找到最近的醫院我的醫院身份證。

select top 1 TargetHospitalID 
from Table3 
where HospitalID = 1 
order by DistanceKm 

此代碼結果TargetHospitalID = 2。但是,貝波恩特醫院沒有心臟病科。

我需要找到心臟科最近的醫院。如何做這個查詢?謝謝你的幫助。

+0

歡迎來到SO。沒有服務器端腳本,我不確定你將如何呈現結果或執行查詢。請提供更多代碼示例,瞭解您目前的工作。 – Twisty

回答

0

您需要修改您的查詢,並將它與Table2連接起來並按部門過濾。

select top 1 t3.TargetHospitalID 
from Table3 t3 INNER JOIN Table2 t2 ON t3.TargetHospitalID = t2.HospitalID 
where t3.HospitalID=1 and t2.ClinicName = 'Cardiology' 
order by t3.DistanceKm 
+0

謝謝cha,sposibo – user2853569